
export class dateUtil {
	static FormatYear(date : Date) {
		return date.getFullYear();
	}
	static FormatMonth(date : Date) {
		return date.getMonth() + 1;
	}
	static FormatDay(date : Date) {
		return date.getDate();
	}
	static FormatHour(date : Date) {
		return date.getHours();
	}
	static FormatMinutes(date : Date) {
		return date.getMinutes();
	}
	static FormatSeconds(date : Date) {
		return date.getSeconds();
	}
	static FormatWeek(date : Date) {
		return date.getDay();
	}
	/**
	 * @description 返回当前日期是当年的第几天,1月1日是当年的第1天
	 * @return {int}
	 */
	static getDaysOfYear(date : Date) : number {
		var i = 0;
		for (var xx = 0; xx < date.getMonth(); xx++) {
			i += dateUtil.getDaysInMonthByDate(date.getFullYear(), xx);
		}
		i += date.getDate();
		return i;
	}
	/**
	 * @description 获取公历日期的显示文本.
	 * @param {Date} theDate alt 公历日期
	 * @param {bool} theShowWeek alt 显示文本当中是否包含星期信息
	 */
	static getDateInfo(theDate : Date, theShowWeek : boolean) {
		return dateUtil.FormatDate(theDate, "yyyy-MM-dd") + (theShowWeek ? "  星期" + "日一二三四五六".charAt(dateUtil.FormatWeek(theDate)) : "");
	};

	/**
	 * @description 当此公历年份为润年时返回true
	 * @param {int} theYear alt 指定的年份
	 * @return {bool}
	 */
	static dateIsLeapYear(theYear : number) : boolean {
		return (theYear % 4 == 0) && (theYear % 100 != 0 || theYear % 400 == 0);
	}

	/**
	 * @description 对Date的扩展，将 Date 转化为指定格式的String. 
	 * 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
	 * 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
	 * @example
	 * (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423 
	 * (new Date()).Format("yyyy-M-d h:m:s.S")      ==> 2006-7-2 8:9:4.18 
	 */
	static FormatDate(date : Date, fmt : string) : string { //author: meizz 
		var o = [
			["M+", (date.getMonth() + 1).toString()], //月份 
			["d+", date.getDate().toString()], //日 
			["h+", date.getHours().toString()], //小时 
			["m+", date.getMinutes().toString()], //分 
			["s+", date.getSeconds().toString()], //秒 
			["q+", Math.floor((date.getMonth() + 3) / 3).toString()], //季度 
			["S", date.getMilliseconds().toString()] //毫秒 
		];
		let regex = /(y+)/;
		if (regex.test(fmt)) fmt = fmt.replace(regex, (date.getFullYear().toString() + "").substring(4 - regex.source.length));
		for (let i = 0; i < o.length; i++) {
			let item = o[i];
			regex = new RegExp("(" + item[0] + ")");
			let result = regex.exec(fmt);
			if (result == null) continue;

			let dealText = (result[0]!!.length == 1) ? item[1] : ("00" + item[1]).substring(("" + item[1]).length);
			fmt = fmt.replace(regex, dealText);
		}
		return fmt;
	}

	/**
	 * @description 返回公历月包含的天数,theMonth从0开始到11
	 * @param {int} theYear
	 * @param {int} theMonth
	 * @return {int}
	 */
	static getDaysInMonthByDate(theYear : number, theMonth : number) : number {
		switch (theMonth + 1) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				return 31;
			case 4:
			case 6:
			case 9:
			case 11:
				return 30;
			case 2:
				return (theYear % 4 == 0) && (theYear % 100 != 0 || theYear % 400 == 0) ? 29 : 28;
			default:
				return 0;
		}
	}
	/** 
	 * 获取两个日期的天数差, 如果结束日期在开始日期的前面则返回负数. 对两个日期的计算不涉及时分秒
	 * */
	static GetDaysFrom(theStartTime : Date, theEndTime : Date) {
		var year = theStartTime.getFullYear();
		var mon = theStartTime.getMonth();
		var day = theStartTime.getDate();
		var year_after = theEndTime.getFullYear();
		var mon_after = theEndTime.getMonth();
		var day_after = theEndTime.getDate();
		var chs = 0;

		var dIsSortLast = false;
		if (theEndTime < theStartTime) {
			dIsSortLast = true;
			// console.log("dateUtil->GetDaysFrom");
			// console.log([year, mon, day, year_after, mon_after, day_after]);
			[year, mon, day, year_after, mon_after, day_after] = [year_after, mon_after, day_after, year, mon, day]
			// 	console.log([year, mon, day, year_after, mon_after, day_after]);
		}
		if (year == year_after) { //不跨年
			if (mon == mon_after) { //不跨年不跨月
				chs += day_after - day;
			} else { //不跨年跨月
				chs += dateUtil.getDaysInMonthByDate(year, mon) - day + 1; //加上第一个不满的
				for (var i = 1; i < mon_after - mon; i++) {
					chs += dateUtil.getDaysInMonthByDate(year, mon + i);
				}
				chs += day_after - 1; //加上
			}
		} else { //存在跨年
			chs += dateUtil.getDaysInMonthByDate(year, mon) - day + 1; //加上开始年份不满的一个月
			for (var m = 1; m < 12 - mon; m++) {
				chs += dateUtil.getDaysInMonthByDate(year, mon + m);
			}
			for (var j = 1; j < year_after - year; j++) {
				if ((year + j) % 400 == 0 || (year + j) % 4 == 0 && (year + j) % 100 != 0) {
					chs += 366;
				} else {
					chs += 365;
				}
			}
			for (var n = 0; n < mon_after; n++) {
				chs += dateUtil.getDaysInMonthByDate(year_after, n);
			}
			chs += day_after - 1;
		}
		//chs+=1;
		return dIsSortLast ? -chs : chs;
	}

	//新的计算方式,虚岁按出生日起算
	// /**
	//  * @description 从出生节气年计算虚岁,注意:虚岁是从立春计算的
	//  * @param {int} theYear 节气年份(1901 ~ 2100)
	//  * @return {int}
	//  */
	// static getVAgeFromYear(theYear : number) : number {
	// 	var dNow = new Date();
	// 	var dyear = dNow.getFullYear();
	// 	var dJieQi = dateUtil.getJieQi(dyear, 2);
	// 	if (dNow < dJieQi) dyear--;
	// 	return dyear - theYear + 1;
	// };
	// /**
	//  * @description 从虚岁计算出生节气年份,注意:虚岁是从立春计算的
	//  * @param {int} theVAge alt 虚岁
	//  * @return {int}
	//  */
	// static getYearFromVAge(theVAge : number) : number {
	// 	var dNow = new Date();
	// 	var dyear = dNow.getFullYear();
	// 	var dJieQi = dateUtil.getJieQi(dyear, 2);
	// 	if (dNow < dJieQi) dyear--;
	// 	return dyear - theVAge + 1;
	// };

	/**
	 * @description 获取指定年的资源. 必须在1901~2099之间.
	 * 年资源为四个字符. 分别为: 1位春节的位置, 2位表示13个大小月, 最后1位是闰月的月数
	 * @param {int} theYear 指定的年份，必须在1901~2099之间
	 * @return {String}
	 */
	static getYearLine(theYear : number) : string {
		if (theYear > 2100 || theYear < 1901) {
			throw new Error("getYearLine: 年份必须在1901~2100之间. 当前年份为: " + (theYear?.toString() ?? ""));
		}
		//农历数据分两段保存,2000年及之后的数据在第二行, 每年四个字符
		let line = "";
		if (theYear <= 2000) {
			line = dateUtil.listdate[0].substring((theYear - 1901) * 4, (theYear - 1900) * 4);
		} else {
			line = dateUtil.listdate[1].substring((theYear - 2001) * 4, (theYear - 2000) * 4);
		}
		//这四个字符分别为: 1位春节的位置, 2位表示13个大小月, 1位闰月的月数
		return line;
	}
	/**
	 * @description 获取指定农历月份包含的天数,返回值只可能是29或30. 
	 * @param {int} theYear  必须在 1901 ~ 2100 之间(包含)
	 * @param {int} theMonthInner  1 ~ 12 或者 1 ~ 13 (闰月时), 注意: 闰月及之后的月数比显示月数大1
	 * @return {int}
	 */
	static getDaysInMonth(theYear : number, theMonthInner : number) : number {
		if (theMonthInner < 1 || theMonthInner > 13) {
			throw new Error("getDaysInMonth: 月份必须在1~13之间");
		}
		var dYear = dateUtil.getYearLine(theYear);
		return (dateUtil.fromWord93(dYear.substring(1, 3)) & (1 << (theMonthInner - 1))) == 0 ? 29 : 30;
	}
	static getWeekText(index : number) {
		return "日一二三四五六".charAt(index);
	}
	/**
	 * @description 获取指定年份的月份数,返回值可能是12或13
	 * @param {int} theYear
	 * @return {int}
	 */
	static getMonthsInYear(theYear : number) : number {
		var dYear = dateUtil.getYearLine(theYear);
		return (parseInt(dYear.substring(3, 4), 16)) == 0 ? 12 : 13;
	}
	/**
	 * @description 获取指定年的闰月的月数,返回值在 0 ~ 13 之间, 0 表示此年没有润月
	 * @param {int} theYear 必须在 1901 ~ 2099之间
	 * @return {int}
	 */
	static getLeapMonth(theYear : number) : number {
		var dYear = dateUtil.getYearLine(theYear);
		return parseInt(dYear.substring(3, 4), 16);
	}
	/**
	 * @description 获取正月初一相对于元旦的偏移天数,公历1月1日为0算起
	 * @param {int} theYear 必须在 1901 ~ 2099之间
	 * @return {int}
	 */
	static getZeroStart(theYear : number) : number {
		if (theYear == 2101) return 28;
		var dYear = dateUtil.getYearLine(theYear);
		return dateUtil.fromWord93(dYear.substring(0, 1)) + 19;
	}


	/**
	 * @description 获取指定年份的属相信息
	 * @param {int} theYear alt 指定的年份(1901~2100)
	 * @return {String}
	 */
	getYearProperty(theYear : number) : string {
		return dateUtil.getDiZhiProperty((theYear - 4) % 12);
	};
	/**
	 * @description 获取指定地支的属相显示文本
	 * @param {int} index 地支索引(0~11)
	 */
	getDiZhiProperty(index : number) {
		return dateUtil.ShuXiangLine.charAt(index);
	};



	// /**
	//  * @description 从两个时间点返回对比结果(专为getJieQiMonthArray设计).
	//  * -1表示theDate小于theJieQiDate,-2表示theDate小于theJieQiDate但处于同一天,
	//  * 	1表示theDate大于theJieQiDate,2表示theDate大于theJieQiDate但处于同一天
	//  * @param {Date} theJieQiDate
	//  * @param {Date} theDate
	//  * @param {Boolean} hasHour 是否计算时辰, 不计算时辰时, 按中午12点计算
	//  * @return {int}
	//  */
	// private static getJieQiMonthArrayComp(theJieQiDate : Date, theDate : Date, hasHour : boolean) : number {
	// 	let jieqiText = dateUtil.FormatDate(theJieQiDate, "yyyy-MM-dd");
	// 	let dateText = dateUtil.FormatDate(theDate, "yyyy-MM-dd");
	// 	if (dateText > jieqiText) {
	// 		return 1;
	// 	} else if (dateText < jieqiText) {
	// 		return -1;
	// 	}
	// 	let jieqiMinutes = theJieQiDate.getHours() * 60 + theJieQiDate.getMinutes();
	// 	let dateMinutes = hasHour ? theDate.getHours() * 60 + theDate.getMinutes() : 12 * 60;
	// 	if (dateMinutes >= jieqiMinutes) {
	// 		return 2;
	// 	} else {
	// 		return -2;
	// 	}
	// 	// 	var ddate = new Date(theDate.getFullYear(), theDate.getMonth(), theDate.getDate());
	// 	// 	var dstart = new Date(theDate.getFullYear(), theDate.getMonth(), theDate.getDate());
	// 	// 	var dend = new Date(theDate.getFullYear(), theDate.getMonth(), theDate.getDate());
	// 	// 	if (!hasHour) {
	// 	// 		dstart.setHours(-1);
	// 	// 		dstart.setSeconds(-5);
	// 	// 		dend.setHours(23);
	// 	// 		dend.setSeconds(5);
	// 	// 		ddate.setHours(12);
	// 	// 	} else {
	// 	// 		dstart.setHours(theDate.getHours());
	// 	// 		dstart.setSeconds(-5);
	// 	// 		dend.setHours(theDate.getHours() + 1);
	// 	// 		dend.setSeconds(5);
	// 	// 		ddate.setHours(theDate.getHours());
	// 	// 		ddate.setSeconds(30);
	// 	// 	}
	// 	// 	console.log(dateUtil.FormatDate(ddate, "yyyy-MM-dd hh:mm:ss") + " " + dateUtil.FormatDate(theJieQiDate, "yyyy-MM-dd hh:mm:ss"))
	// 	// 	var result = 0;
	// 	// 	if (ddate.valueOf() >= theJieQiDate.valueOf()) {
	// 	// 		result = 1;
	// 	// 		if (dstart.valueOf() <= theJieQiDate.valueOf() && theJieQiDate.valueOf() <= dend.valueOf()) {
	// 	// 			result = 2;
	// 	// 		}
	// 	// 	} else {
	// 	// 		result = -1;
	// 	// 		if (dstart.valueOf() <= theJieQiDate.valueOf() && theJieQiDate.valueOf() <= dend.valueOf()) {
	// 	// 			result = -2;
	// 	// 		}
	// 	// 	}
	// 	// 	return result;
	// }
	// /**
	//  * @description 从指定时间点返回所在的节气月的整数数组,其中包含一到两个值(两个值表示时间点落在了节气点上,此时第一个值为首选值).
	//  * 月数范围:-2~11. 小寒=-1,立春=0,惊蛰=1,清明=2,以此类推
	//  * @param {Date} theDate alt 指定的公历日期
	//  * @param {Boolean} hasHour alt 是否计算时辰
	//  * @return {Int16Array}
	//  */
	// static getJieQiMonthArray(theDate : Date, hasHour : boolean) : number[] {
	// 	var dJieQiStart : Date;
	// 	var res : number;
	// 	var a : number[] = new Array();
	// 	for (let xx = 0; xx < 12; xx++) {
	// 		dJieQiStart = dateUtil.getJieQi(theDate.getFullYear(), (xx * 2));
	// 		res = dateUtil.getJieQiMonthArrayComp(dJieQiStart, theDate, hasHour);
	// 		if (res < 0) {
	// 			a.push(xx - 2);
	// 			if (res == -2) {
	// 				a.push(xx - 1);
	// 			}
	// 			return a;
	// 		} else if (res == 2) {
	// 			a.push(xx - 1);
	// 			a.push(xx - 2);
	// 			return a;
	// 		}
	// 	};
	// 	a.push(10);
	// 	return a;
	// }

	/**
	 * 从24小时转换成12时辰
	 */
	static getHour12From24(hour24 : number) : number {
		return hour24 == 23 ? 0 : Math.floor((hour24 + 1) / 2);
	}
	/**
	 * 从12时辰转换成24小时
	 */
	static getHour24From12(hour12 : number) : number {
		return hour12 * 2;
	}

	/**
	 * @description 获取指定年份的属相信息
	 * @param {int} theYear alt 指定的年份(1901~2100)
	 * @return {String}
	 */
	static getYearProperty(theYear : number) : string {
		return dateUtil.ShuXiangLine.charAt((theYear - 4) % 12);
	}
	/**
	 * @description 获取指定地支的属相显示文本
	 * @param {int} index 地支索引(0~11)
	 */
	static getDiZhiProperty(index : number) {
		return dateUtil.ShuXiangLine.charAt(index);
	}

	/**
	 * 地支十二个属相
	 */
	static ShuXiangLine : string = "鼠牛虎兔龙蛇马羊猴鸡狗猪";

	/**
	 * @description 5个五行单字组成的字符串
	 */
	static WuXingLine = "木火土金水"
	/**
	 * @description 甲子起算日(1900年4月21日)
	 * @return {Date}
	 */
	static DayGanZhiZero : Date = new Date(1900, 3, 21)

	/**
	 * @description 十个六亲单字组成的字符串
	 * @type{String}
	 */
	static LiuQinTGLine : string = "比劫食伤财才杀官枭印"
	/**
	 * 第一第二行是1901-2100年大小月数据,每年四位字符(正月偏移天数Base93+闰月数16进制+13位大小月标志两个Base93),
	 * 1901-2000年为第一行共100年400位字符,  2001-2100为第二行共100年400位字符.
	 * 第三第四行是24节气的日期范围,上面是开始日期,下面是截止日期(注意应截止于此日之后). 没有月份,只有日数. 节为单数,气为双数.
	 * 第五行开始是1500-2499年的节气数据,每行10年,每行有480个Base93字符.
	 * 每个节气的偏移分钟数都用两位Base93字符存储. 起始节气是小寒.
	 */
	static listdate = [
		"@6005J?0+_C6=3@01?40'!f5:0v0/A80$b437600,le7?@a03>A0(Zu6;)D000w0%AH38GZ0.sG8AJ,05F30*jG6=>L02)M0&]h5:4l0/JC0%v037J,0,F47>0703>M0(UQ6;A9014l0&Jc486'0-`/8@?,05070)>Q7<?F020v0'm85:B&0/A(0$k037?.0+!=8>0B03?F0)]]6;1a00GV0&r!49FX0-?.9??0050b0*?N7<?n024j0'J?5:J?0/3?0#D_46?40,!j8>0v03AH0)b46<A100@a0%_D58>A0-Zu9?)D040y0*AH7=GZ02GC0'r75:F30/jGbA>L06)M0+1d7>4m03JC0)v06<J,01F40%>L47>M0-[C9@+7044m0*`e6=6'024+0",
		"&!;59070.>Q0$!j360v0+m88?B&04A(0(k06;?.00090%?F57?N0-]]a@2$05GV0*r!7=FX02D]0'!>590b0.?N0$]e374j0+J?7>5`033@0(D_6:Ds000f0%?o48AH0-b4c@A105@a0*jE7<>A01.q0&0g691!0.AI0$m537GC0,r78>F303>K0(Zw6;.|0/1d0%G[48Jc0.v09@J,05F40*>L7<>M01/?0&4m59630/6'0#J-464+0+!;8>0702>Q0(!j6;0v00AD0%b,58A)0-k29@?.04090)?F7<?N021Y0&B'59GV0/FX0$pa46D^0+g_8>0b03?N0(]e6;4j00J?0&IA573@0,D_9?.q040g0)?o7<AI02600'ad59@a0.?$0#Ze36.q0",
		"419318419319420420521622622722621621",
		"721520722621722723924924924924823823",
		"@d<W9F7GF_H;L$B;I}CjN?J)UOQ%KYDnKbA2C}DsCoAD=a9JDH@D=);3J@L$O`E~MZGNQzMiY0TeO@HSONDwGlH[G^E+AN=/H4D)@r>vN/OiSQIgQMK7UmQQ!}XMS,L:S6H]KRL@KBHlE1@oKsGiDVB!QsSRW:MUU8O(YVUB`d!<VmP'VvLHO5P+O'LXHuD]O[KXH=FHF+GlKMAkIIC:MhIQTvPGK#D2K.@TCMD:CA@k=58rCy?l<[:!ItKNO7ELM3FyQRM6X`T1NjG{NsDAG2H%G$DR@q<WGXCP@8>?MQO3RsI4PpJdU4Q%!GW~RSKjR^H.JyKlJiH;DY@?K?G9C}B)Q;RzV^LzT!NKX}Td`1[^V<OIVFKiNaOLNQKyHBC~O)JyGjEkEXG3JzA3HuBaM7H{TEOwJPCeJ!@,ByCnBj@><Y8AC>?8;z:&I4JtNTDsLPFDPpL`X'S]N7GNNHCuFjG!F]D,@L<.",
		"G/C#?h=lL~N!RBHZP?J+TbPH[uWFR'K6R4G!JTKBJGGqD7?tJxFjCVAWPlRGV/LGT+MwXKT8_][6UjO%UwKKN:O1N.KbH ChNfJaGEENE,FkJH@dH?B1L]HISoOEJ C5J3?]BVCFBN?y<C8%C,>|;i9iH}JVN;DML0EtPKL0W!S.MkF~M|CKFAG4F6Cc@(;iFkBb?K=OLbN?R H;OvIfT5P#[EV}QUJoQfG:J,K#I~GSCp?XJVFQC6A?PNR0UnL,SgMUX&Sj_3ZaU?NNUMJuMpN_MgK5G]C=NEJ8G&E&DnFGJ/@BH'AlLBH&SNN|IWBkId?5B)B}A~?S;s7[B[>T;99@HMJ-MiD(K`ESO}KlW1RhM@FXMQC#EtFiEkC>?`;EFFB>?%=)L9MsQUGmONI:SmOT[#VPQ1J@Q?FeI^JLIRF|CE?%J,E|Bj@kP$Q[UBKWS:M&WWSA^gZ>TtN/U%JUMEN<M9JkG+Br",
		"MoIkFPDYD8EwIS?oGHA9KcGORsNJI&B<I9>fA_BQAW?&;K7,B0>$:k8lH IXM=CPK2DwOMK1V]R.LmF M#BOEHF;E@Bl?2:pErAd>M<MK_M:PzG4NqH`S1N{ZAUyPRImPdF;I-J'I&FZBw>_I[EUB7@>OHQ(TbJ}RYLHVuR_^(YYT7MHTHIqLmM^LhJ7F`BAMII;F(D&CjE@I%?5Ft@ZK0FqR?MnHLA`H]>/A&Az@}>R:u6!A]=U:;8>GKI'LaBxJRDANjJXU{QWL0ELLFAzDoEgDiB>>_:FEEA>>#<(K5LoPMFdNAH,R!NBYlU>O|I0P3E!HYIIHRE|BG>'I.D}Aj?iO PVT<JNR1KvVJR0]WY,SdL{SuIJL>M8L9InF0AvLuHoESCYC7DsHN>hF?@/JWFDQeM>GuA0H,=]@VAM@T>(:N63A6=,9p7qG$HYL:BLJ,CpNEJ)UUQ&KeDwKyAGDCE6D?Al>69t",
		"Dz@m=W;VJhL?P F5MqG]R.MvY>TvOOHkOcE:H,I'H&E[Ay=cH`D!A>?FNQP1ShJ&Q[KJUtQ_]&XYS7LKSKHwKsLeKnI>EfAHLOHBE.C.BrDIH->=E{?`J5EuQCLqGR@fGg=9@3A)@/=`:&5g@i<]9D7DFSH-KhA~IYCGMqI^U$P^K8DVKQA*C}DyC{AS=r9YDV@N=/;4J=KwOSEkMFG3QbMJXsTGO)H<O?DkGiH!GgE6A_=?HFD6@~>zN0OaSEIUQ7JzUPQ5!_X3RoL)S&HXKOLJKNI&EHA1L2H+DkBoBKD&G!=qEG?5I!EIPjLFF}@<G9<m?f@a?h=?9d5L@N<F9+7-F9GnKJA[I6ByMJI.TYP+JlD#K(@UCTDGCRA =K9,D3@$<m:jI|KQO3ECL~FeQ6LzXBSxNSGoNjDCG9H6G8DnA0<wGuCo@Q>XMaO@RwI2PeJSTzPd!(W!R7KMRLG|JyKpJzHNDv@Z",
		"K`GTD>B=A~CTG5=EE$>eI8DvPDKpFQ?cFe<6?4@+?5<f904q?u;i8P6NE!G2JnA#H!BFLrH]T#O[J5CRJM@&BxCvBx@R<r8!CZ?T<5::IAJ{NSDjLBF0P!LFWmSCN#G8N:CfFcGVF`D0@Y<9GAC2?{=wM-N^RAHOP0IqTGP+[VW*QhJ~Q~GRJKKDJHG{D@@'K(F|CaAbAABwFQ<eD<>(HOD;O]K:Er?4F1;i>b?_>d<<8^4F?D;;7z5|E'F]J7@JH#AhL8GzSHNyI^BtI|?NBPCDBQ?~<J8)C/>y;b9[HlJ=M{D,KhENP KeW1RfMEFaM`C;F4G3F8Co@3;yFwBo?O=QLXN2QfG|OPI=SdOPZqVLQ(JCQBFwItJoIzGQCz?aJeF[CAA@@{BPF+<8Cp=SH$CcO1J`EE>YE`;3>4?,>9;k883y? :q7Z5UDcF5Io?|GVA<KfGORsNOI,BLIJ?'A}B}B%?];~7j",
		"Bg>a;B9FHMJ(M[CpKDE0OXKAVeR<LyF4M8BiEiF`EmC@?j;MFSBF?/=,L=MnQNG[O:HySLO-ZXV)PhI}Q#FUISJNIXG0CW?>JBF7Bz@x@WB,Ec;tCK=4G[CENfJADx>9E6:p=j>j=q;N7q3]>]:V7759D?EuIL?^G4@zKGG.RVN*HkB#I*>YA[BPA^?0;[7=BE>5:|8vH)IWM7CBJ}DaO5JvVCQvLWEqLrBJEDFAEFB|?B;+F+B#>c<eKnMGP|G3NcHORtN`Z$U]P8IUPTF-I(J$I-FbC*>oIqEhBL@M@+A^E8;HB}<bG1BqN>ImDS=hDp:D=G>>=L:|7I3*>/9{6c4!CjE:Hu?$F]@BJoFVQ|MWH6AVHV>4A/B0A6>n;26yAt=l:J8KGOI'LYBmJAD.NUJBUeQ?K{E9L=AqDqElDyBN>w:[E_AQ>7<2K>LlPHFTN0GoRBN%YQU$OfH|P%EXHYISHaF8Ba>G",
		"ILE?B%?|?YA)D^:jB?<$FKB4MWI4Cn=3D29o<j=m<t:R6v2b=a9Z6:4;C?DsHE>UF&?jJ4EwQALuGY@tG|=S@WAP@`>3:^6@AG=79}7vG'HSL1B9IrCRN#IaU.P`KCD^KcA=D=E<DFA}>E:-E.A#=c;bJkLAOtF(MWG@QdMMXlTGN~H@O?DzGwHyH&EaB*=rHsDlAM?N?(@[D1:@Aq;VF AbM,H[C@<UC^92<8=2<D9v6G2)=28~5f3^BkD8Gq=zEU?6IdEHPpLHG(@FGH=%@ A$@,=f:,5u@t<l9L7MFRH)KYAkI=C(MMI:T!P7JrD2K4@kCiDfCqAI=q9XD!@Q=7;5J?KpOJEVM/FnQ?L}XLS|NbGxO$DVGZHSGbE7Ab=FHLD=A%>{>Z@)Ca9kAB;%ENA4LXH4Bp<5C68t;q<v;}9!5~1j<g8`5=3>B@CtGF=XE(>nI7D}PEK|F_?|G'<^?c@^?n=D9n5Q",
		"@U<D9*7 F-GXK3A<HtBUM(HgT7OhJNChJp@JCMDLCYA3=[9BDE@8<x:sIzKKN~E.L^FDPjLSWuSRN.GONPD/G-H1G<DxAA=/H/D)@e>f>;?mC>9L@z:^E(@iL3GfBL;eBp8G;N<I;!915_1B<K8:5 2vB$CMG'=-Db>AHmDOOyKPF4?SFY<8?9@;?F=#9H51@1<'8e6dEhG=Jl@|HLB5LXHBScO?IyC=J??zB{C|C+@d=.8sCu?j<L:JIQK%NXDeL:EzPGL(WRS$MgF~N+C^FeG`FsDJ@x<!GcCS@:>0=k?7Bm8t@J:+DT@8K]G6As;7B:7x:w;};*8h500z;y7q4O2NANC#FO<^D+=qH7C~ODJ|E^>|F&;^>b?_>o<G8q4W?[;M816+E3F^J6@>GrARL#GaS1NbIJBcIn?FBKCHBW@/<Y8?CC?5;w9qHzJIM|D)KYE<OaKHVjRGM$FGMIC+F(G.F8Cu@<<)",
		"G(B~?!=!=0>bB28@?l9QCu?[K#FWA<:XAd7?:G;D:X8.4[0=;C713s1h@rB<Er;wCP=.G[C<NgJ>E$>BEL;,>0?4>B;|8F4.?/:~7]5WDZF*IY?fG6@zKAG,RMN,HfB,I/>nAoBtB$?`<+7sBt>j;I9FHHIvMHCSK$DdO/JoV;QmLUEnL{BSE!FYEnCG?w;!FeBT?<=0<i>1Ae7g?<8uCA?#JJF#@d:)A06p9r:y:)7g41/|:|6t3S1Q@QB#EN;ZC%<gG+BqN5IoDP=sD{:[=`>b=r;N7x3`>c:V7953D9EfI;?BFt@SJ}F]R*M[HCA]Hk>EANBMAa?:;g7LBS>C;(8}H)IRM)C0JaDANfJJUlQFL$EGLJB-E-F6EBC&?L;;F;B4>o<n<A=rA@7M>w8!C >eJ+E`@C9`@j6F9O:O9c7=3k/Q:W6G3,1 @)APE';+B_<<FiBIMuIKD3=OD[:8=>>@=P;,7V3>",
		">A:46s4lCqE>Hn>xFH@-JQF;Q]M<GwA>HA>$A#B)A4>q;:7&B%=z:Y8XGYI,LYBeJ4CuN>J UJP~KeE$L2AiDrEpE(B!?-:mEuAc>I<=;u==@q6r>H8#BN>.IWE/?r97@B6%9+:29A6~3H/2:16%2_0Y?YA(DS:]B);lF0AwM<HxCY<~D)9j<p=v=):e702v=v9i6G4@C@DkH<>CEr?RI{E]Q+L]GG@cGs=N@ZAZ@q>J:z6_Af=T:88,G2HVL*B,I[C8M_IATfP@K DFKLA1D4E>DLB1>Y:IEIAB=|;z;J<x@B6K=p7SAr=YH{DV?98[?f5G8P9T8i6E2s.Z9`5Q240*?/@UD(:)AX;3E!A:LfH:C$<BCR90<<=?<S:/6!2C=H985x3nBsD>Gn=sEC?#IFE,PML)Fe@-G2<u?wA$@2=r:<6+A*= 9!7ZFYH+KUA`I,BlM1HrT9OmJRCnJ{@XCcDdC|AW>+9n",
		"Dv@e=J;>:t<:?l5l=?6vAC<~HJC}>d8&?24q7y9#855s2B.-905$1a/Y>Z@&CP9WA#:cE&@lL1GmBM;sBz8^;b<j;y9Z6%1n<o8d5B3>B=CiG7=?Dk>KHrDUP KUF??!Fl<G?T@R?i=B9q5U@]<K917%F-GQK'A'HWB2LZH:SaO:I{CBJK@0C5D>CMA0=X9EDE@<<v:r:C;p?;5E<k6O@n<UGvCT>67!>g4K7U8!7o5M1y-`8b4R11/'>(?OB|9#@Q:.DX@8KdG:B';EBW87;E<I;a9<5k1P<U8B5$2rAvC<Fk<nD?=zHDD)ONK+Ej?4F;<#?'@3?B='9O5>@=<48l6hEcG2JX@aH*AiL-GqS8NqIWBxJ)?gBsCwC2@l=@9'D/?|<_:Q:';I>v4t<D5x@C;~GLC#=k7/>@4#70887N5/1!-F8K4=0z.p=p?8Bb8e@/9jD,?pK4FqAR:|B(7n:t<#;48u5@1.",
		"<,8#4[2VASB~FI<PCx=WGzC!O&JZEC>bEs;R>b?e? <[904r?z;h8L6?EDFfJ:@8GfA>KeGBRiN?I$BEIQ?6B?CJB^@C<o8^C`?V<3:-9Z;&>M4S;x5Y?v;]F|BZ=:6`=j3P6Y7c6w4Y1),r7t3h0E.==;>bB.81?[98C^?>JiF?A+:IA[7::I;K:e8@4q0W;_7L402 A'BHEw;vCF<~GGC)NOJ+Dk>4E=;$>(?4>C<(8O4>?=;57n5jDfF5I[?dG+@jK,FoR4MnHRAvI'>gAsByB2?m<?8'C,>x;Y9L8}:C=o3n;=4r?<:wFEAw<d6(=;2|6/766O4.0],D7I37/s-e<e>*AU7U>~8[B}>bJ(Ee@H9r@|6g9n:}:17t4?0.;+6~3V1O@HAqE9;?Bd<EFgBLMrILD5=WDi:K=[>`={;X8.3r>z:g7J5;D=E!I,?'FS@(JPF,QVM,GsA8HH>-A:BEA[?@;n7!",
		"B`>T;39*8W9|=E3F:i4G>c:IEhAH<*5T<_2J5T6b5v3[0)+t6t2i/E-=<8=`A(7+>Q8-BO>/IXE/?x9<@R649G:L9h7E3w/!:d6P341$@'AGDu:rBB;wF@A{MEH{C`=(D49z=&>4=H;.7Y3H>H:>6w4pClE8H]>dF*?hJ(EkQ.LiGK@qG~=e@qA|A7>w;I75B9>+:f8Z8*9M<u2s:?3t>=9wEE@x;d5(<<1|51695U34/g+P6W2E/',t;t=6@`6]>(7`B%=fI.Di?N8x@&5n8v:(996}3I/9:86/2e0_?XA$DG:MAp;PEoAULyHVC><cCt9X<h=o=+:g7;3 >(9t6V4HCJDjH9>4E_?3IZE5P_L5F~@CGV=<@LAV@o>R;$6lAq=b:A847c9(<P2P9t3P=n9RDs@R;54a;m1[4f5v5.2r/?+-6+1|.T,K;C<i@/62=V74AU=7H_D8?%8G?^5B8V9^8|6Z31.t",
		"9{5f2G05?5@RC}9wAF:yEC@~LJH#Bh<0C@9(<5=C<Y:@6n2]=_9T6/4&B}DEGh=jE.>iI'DkP.KkFN?wG'<o?{A,@C>):X6FAI==9w7k798[;~1{9B2v=;8uDA?u:c4);A1%4;5C4a2A.u*]5e1R.4,#;$<@?j5c=.6`A%<bH)Cc>I7t?%4o7z9.8B6+2U.D9C591n/g>_@*CK9P@p:ODk@QKrGOB5;[Bl8T;e<p<.9m6A2+=08}5!3NBLClG8=3D[>0HTD.OXK,Et?8FM<2?E@P?m=P:'5o@v<f9F776e8';M1J8n2G<f8HCi?H:+3V:b0P3[4m4%1k.9**5(0{-S+J:A;f?)5,<M6*@I<-GSC/=w7>>T497L8T7q5P2'-k8r4_1@/.>/?LBv8o@<9nD7?qK>FsA_;&B97~;0<=;T995g1S<V8H5%2vArC8F!<]C~=[GwC!N}J^EB>nE|;j>v@*?A=(9T5C",
		"@B<58j6_6)7L:m0l811g<+7gC3>i9X2}::/~394C3d1E-z)`4g0Q-1*y9w;3>[4S;{5O?t;SF{BW=A6l=}3l6{807H511]-M8L4?0t.h=^?$BC8D?b9AC!?CJeFFA-:WAi7U:f;u;48w5L19<=8/4h2ZATBrF8<1CT=(GJC%NOJ%Dq>7EP;6>M?Y>z<^975 @+;w8Y6G5u73:X0O7r1F;d7CBe>C9)2W9g/X2f3{350~-M)>4=04,h*_9T:y>:4;;X54?N;1FTB1<w6C=Y3C6Y7e7(4g1?-(8.3y0X.G=E>bB-8%?M8|CC>zJFEx@d:+A@7(:<;J:g8M5#0m;r7c4B23A/BOEt;qC6<lG+BjN-IiDK=wE':s>#?7>O<;8i4[?!;Q8)5|5C6f:'0%7D0{;;6xBA=x8e2-9E/,2D3N2p0Q-+(q3z/f,G*391:J=q3f;04`?':aF-Ae<P5y=/2x6*7;6S4;0h,W",
		"7X3K0%-v<n>4AT7S>r8NBi>OIpER@89e@u6c9s;&:?8%4T0A;C753m1`@XAyE>;9BZ</FOB+MTI+Cw=>DX:@=Y>d>);h8A4)?1:y7Y5E4r6.9U/K6p0C:c6AAe=B8+1X8k.]1m3&2>0*,U(F3C/6+h)!8N9p=/3/:K4(>C:)EKA+;q5@<V2C5Y6i6+3n0D,/732}/X-E<>=X@{6r>:7iB0=hI6Dj?Y8~@:6 99:H9h7M4&/o:v6e3C11@+AFDh:`B#;UEqASLtHUC;<iCz9l<{>5=N;;7i3!>!:R7)4z4?5`8z.v63/g:$5aA(<b7O0x86. 1<2K1n/R,,'r2z.f+E)08,9D<h2[: 3N=q9KDt@M;;4c;{1i4~645Q3:/k+Y6!2M/',u;m=/@O6K=i7BA[=?H^D??$8R?d5U8f9|9:7&3V/G:H6<2q0d?Y@yD::4AR;'ED@}LFG{Bi<0CK93<N=!=$:e7B3,",
		">7:$6b4L3y538W.J5n/>9^5:@`<;7%0Q7e-V0h1~1;/'+V'H2I.=*q(e7X8x<7249O3*=C9(DI@+:p4A;V1E4Y5k5,2p/E+2662&.^,N;G<c@'5|=A6qA5<mH:Cn>_8'?B5+8C9Q8r6V3/.v9~5k2K08?4@NCr9iA.:^D{@[K}G!BD;sC(8y<-=D<^:L6y2k=i9^624&3G4g8$-}5;.q9-4m@3;n6[0)7D-30N1_1%.h+B'+21-y*U(?778N;p1c9*2W<z8UD#?Y:J3r;/0z455H4h2Q/(*r5v1d.>,+; <<?Z5R<p6G@b<FGhCJ>17b>t4h7y948O6=2m.`9`5U2+/{>m@.CG9@@Z:.DH@&KKG&Ar;=BY8E;a<q<:9|6Y2D=N9;5x3b304E7g-W4x.D8d4=?d;>6+/W6p,c/y130Q.<*m&]1^-P*''u6h8);D1>8X2/<G8*CJ?,9p3C:Y0M3b4y4;2&.W*G",
		"5H19-n+]:R;n?/5&<E5t@6;mG8Bk=[7#>@4*7F8V7{5a2=.(924z1Y/C>>?TBw8i@.9[Cx?UJxFUA=:kA~7r;(<A;]9M5}1q<q8f5;3,2L3i7#,z45-j8$3d?(:e5P.~6:,*/D0W/z-c*<&)1/,{)V'A677N:m0^7~1M;n7HBs>L9>2f:&/o3,4>3`1G-|)h4n0[-7+#9x;3>S4H;f59?T;5FXB9= 6T=h3^6p8,7G551c-V8U4J0|.o=_>~B982?J8|C7>sJ9Er@`:.AL7;:X;k;48x5T1><F824l2T1}346U,D3e-17Q3)>R:+4x.G5c+V.q0,/M-9)l%[0],L)#&l5^6w:40+7E0y;46uB9=y8b279N/D2[3u381'-Y)K4K0=,o*^9N:i>$3x;54e?$:]F'A^<O5w=83%6C7T6|4c1B--884$0a.J=C>WAw7e?(8QBo>HInEJ@69e@}6r:,;F:e8U5*0{",
		";}7q4G281X2s6,,$39,k7 2a>$9b4M-~5;+1.K/d/*,s)L%;0?,/(e&R5E6]9y/k7+0V:t6MAw=N8A1i9,.w283K2q0Y-5(}4(/q,N*790:E=e3X:w4G>c:AEcAB<+5!<q2h5|7;6Y4J0{,p7o3e09.+<w>7AM7F>!81BG>'IHE%?n9=@X6I9f:z:D8.4h0V;_7L4)1o192M5j+Y2x,D6c2;=d9=4.-X4u*f.%/;.^,I) $m/r+`(:&%4v609K/?6Y0-:F6(AJ=-7t1K8a.X1m3+2I08,h(Z3Y/M+~)n8]9y=33+:C3t>09kE3@l;!5*<I275V6g613u0R,;7D3//j-Q<J=]@}6k>.7WAv=NHvDQ?@8n@,6 9<:V9x7f4<0-;.6{3O1<0Z1r5+*~26+h5}1`=#8d3N-%4?*8-T.p.6,%(Y$J/K+:'k%V4D5Z8q.c5}/L9h5C@m<G7;0e8*-v1:2O1x/a,?(*",
		"33.z+V)<829B<_2L9j37=S9/DT@4:}4R;k1c4z6;5Z3M0 +t6u2j/>-.;x=5@G6<=M6}A2<oH1Co>[8.?K5A8_9x9B7/3i/X:`6O3)0q071K4d*Q1l+55P1&<N8&2v,D3f)Y,z.4-!+G(##m.t*`':%#3t5+8F.65P.|964r@5;t6]057M-H0`2 1B/5+g'[2Z.N*~(n7[8v<-2$992i= 8]D ?Z:H3t;51&4F5!5(2p/O+<6F22.l,T;K<!?z5f=(6N@l<CGjCC>37^>{4o8/9I8n6^38/*:.5{2R0=/]0r4+)z13*b4w0Y;y7]2G+|38)2,K-i-.*|'S#G.H*:'/$Y3G4^7s-e4|.L8f4B?j;F6:/f7+,x0<1O0y.`+>')22-y*V(<738D;b1O8m28<V80CW?5:$3V:q0j4&5C4d2T/**z5z1l.@,.:y<5?H5=<P6#@5;sG6Bu=`77>T4M7l9+8R6A2x.h",
		"9l5[21/w>g?zC59#@<9eD#?XK$F[AP:|BD87;[<s<A:,6g2S=Z9C5y3]BOC^Fx<eD =MGgCENjJLE9>nF,<(?B@c@(=y:O6DAD=79e7RF<GTJe@YGkA=KQG1RSN3I BRIq?fC*DBCmAY>8:'E1@{=V;=J1KANZDCK]E$O@JrV>QtLhF8MZCOFqH.GWEFB =oHvDcA;?$>D?UBk8X?l9:CM?,JLF/@w:RAm7l;+<M;q9e6<21=19$5S3@B+CBFS<ECX='G<BuN<IuDh>8E[;N>s@-?Y=D:$5m@w<`9<6~EsG$J@@*GG@lK+F_R)MaHQB#IA?9BWCuC=A/=f9ZD]@O=$:mIZJoN$CrK&DTNeJDUbQDL.EbL}BxF8GXG DrAM=AHFD7@j>U=r?(B;8)?>8fB~>UI}EV@K9wA?72:V;m;<9'5d1P<Z8C4|2`ATBbE|;eC <IFdB>MdIDD2=gE&; >=?]? <s9H5=",
		"@=<08_6ME8FOIa?TFe@7JHF(QHM)GsAHHg>_B#C>Bf@T=18}D'?q<I:1I J4MLC7JPCvN3IfU2PgK!E,LPBFEjG(FTDB@}<jGqC[@2=s=6>DAZ7F>!8(B>=yI>D~?k9G@c6c:#;H:l8c5:10</7~4L28@|B4EB;3BC;qF(AdM+HhCZ=.DQ:G=l?(>V<C9#4n?w;a8;5|DmEzI5>yF6?ZIvEMPwLRGF@vH;>4AUBsB>@0<i8!Cb?R<(9nH[ImL~BjIzCGMWI5TTP7K#D[KyAxE:F]F'Cy@T<JGLC??o=[<u>,A<7)>:7bAv=NHsDN?C8r@=639[:u:G834r0^;g7P4+1j@]AiE%:jB';KEeA=LcH@C1<eD(:%=D>g>0<%8[4P?Q;B7q5!DFE[Hk>]Em?=IME-PKL,Fu@LGj=eA)BHAr?e<B85C<?+;^9GH5IFLZBEI[C#M<HoT9OoJdD4KYANDtF2EaCO@1;}",
		"G)Bq?J=-<M=Y@n6V=k74AK='HJD,>x8S?q5q92:V9z7q4I0@;?723_1L@3AHDT:DAS; E4@qL6GuBf<=C`9X<|>;=f;T833~?(:p7I5.C|E-HD>,EE>hI&DYP%K]FS@&GK=D@hB(AS?C;}7mBs>_;58xGfHtL*AqI&BNL`H=S!O?J,CeK'A)DIEoE9C1?g;^F^BO>|<f;|=2@?6,=;6d@w<QGvCS>H7y?D5=8f:&9V7E4'/q:z6a3:0w?f@oD'9iA$:FDa@8KaG>B2;fC+9)<K=n=:;07i3]>`:P7#4hCQDaGo=[Di>6HED$OBK&Eo?JFh<g@+AN@x>m;K7@BE>7:h8RG<HMK!AFHVAzL2GdS-NcIYC+JT@KCuE4DeBT?7;%F0Av>P<1;Q<Z?o5S<h6-@C;wG>Bz=k7F>g4i8-9T8|6t3M/D:D662c0M?4@GCR9A@M9yD+?gK)FhAV;/BQ8M;r=5<b:T743%",
		">+9u6K40BzD+G?='D<=_GyCNNvJOEE>tF=<5?!@z@L>=:{6lAu=`:87xFfGqK&@iG{ACKVG1RQN3H}BZIx?zC=DdD/B)>`:YEZAN={;f:{<0?:5'<35!?l;HFkBJ=>6r><467_8|8N6=2|.j9s5!24/s>b?kC#8d?z9>CX?.JXF5A+:_B(8%;J<k<9:-6f2X=!9I5z3`BKCZFi<TCc=.G>ByN;I|Di>GEg;i?.@S?}=t:O6EAG=79e7NF6GGJT@?GN@tK*F^R&M_HVB*IT?NB{D<CoA_>C:0E:@}=T;3:P;V>i4L;a5$?=:qF:Aw<k6F=k3n768^8,6&2^.U9V5F1r/X>=?KBU8??J8tC'>cJ&Eh@X:4AW7W:}<C;q9g6F2:=@9.5_3DB-C:FH<.C?<aFwBLMuIPDH=yEG;@>k@-?_=P:46%A0<w9P72E}G'J8?wG*@JJ!F3QTM5H%A`I%?*BNCxCEA@=y9s",
		"Dt@h=7:~:6;G>O4:;B4i>v:QEpAP<B5y=C3B6m827c5V28.(904w1N/0=y?%B87x?/8OBg>:IbE<@39eA07-:V;y;L9A6 1q<x8d592yAdBoF ;fBu<>FMB(MFI(Cq=NDl:o>4?!?*=%9_5X@[<O8|6fEKF!Ie?PF!@%J5EjQ0LiG]A2HZ>TB#CABu@f=L9;DF@/<d:D9a:g=y3Y:m4.>F9xEC@~;s5M<s2s6<7b715(1b-W8Z4I0x.^=D>RA!7F>Q7yB*=fI(Dk?Z98@Z6!:#;H:s8j5F1:<=8,4Z2AA)B7ED;,B<;_EtAJLqHMCF<xDG:A=n?/>b<R965$@.;r8J6(DrExI,>jE{?>IRE(PLL,F|@YG~>'AMBxBG@B<{8sCs?d<19t9):6==3&:.3V=c9@D`@D;64p<:2<5g7/6a4V18-*803w0I.*<n=uA&6d=u78AO=$HND*?%8X@'6%9R:t:J8?5 0q",
		";y7c481u@_AeDr:TAb;%E5@kL.GoB_<?Ca9g=.>Y>(<%8^4Y?[;O7{5dDGEVH!>DEK>oH|DTOtKTFH?~GM=L@zB@Av?j<O8@CJ?3;f9E8`9e<t2S9d3 =88gD2?j:b4<;g1i586`644-0j,_7d3Q0 -b<H=R@]6C=M6rA <!GzC_>M8,?O5T8z:G9u7p4O0G;I7:3g1N@2A@DI:1A=:`Dr@HKmGIB@;rCA9=<k>/=e;X8@40?<;%7[58D$E(H7=rE&>BHVD*OOK-E~?ZG#=(@PAzAL?H<'7}C$>r;B9(8;9G<M249;2`<l8ICg?L:>3z;C1G4p6:5j3a0B,67;3(/W-:;~=*@65v='6G@!<0GYC6>07e?5538b:&9[7M42/~;*6o3E1$?l@rD$9b@q:3DE?yK=F|Am;MBq8y<B=n==;:7t3m>n:`7-4rCSDaGg=ODV=|H*CbO$JbEV?1F!<^@0AVA.?%;f7X",
		"B_>H:w8U7l8p;|1Z8j2)<?7oC<>v9p3I:v0x4J5r5I3A0%+v6|2f/8,t;Y<^?g5H<S5u@&;_G Be=V77>[4c8,9X9)7&3a/[:^6O2z0a?B@NCS98@@9bCp?HJkFKAB:xBI8H;x==<t:h7O3@>L:56j4GC1D3G@<xD)=BGTC%NKJ(D|>XF&<,?XA'@Y>U;57-B2=~:N817D8N;S178<1_;h7CB_>E952t:=0F3p5?4p2l/L+B6E23._,A;$<-?54u<#5C?T;(FOB+=%6Y>+4*7[9 8Z6O36/':15u2L0(>n?qC 8!?j9)C;>lJ1En@`:>Ad7k;6<d<6:56q2m=p9b603tBTC_Fc<HCL<pFzBTMrIUDG>$EM;R? @J@ =x:!6QAX=D9s7R6g7k:u0R7^0y;06`B,=f8b2;9j/l3@4f4?26.x*j5r1[./+j:Q;U>_4>;I4h>w:PEqAV<H6*=P3Z7$8R8 5}2Z.T",
		"9U5F1o/V>6?BBF8-?38VBb>;I!E=@49mA>7@:r<:;r9h6N2?=I915c3?B&C'F3;kBx<4FHAvM@HyCs=OD};'>W@&?!=X:<63A8=$9P706A7F:K0+710R:]68AV==8.1o9:/E2p4B3t1s.T*M5P1?-h+K:*;1>43s:z4=>L: EHA'< 5Z=-3.6b8*7d5Z2D.59A5)1]/8=~>}B,7b>o8*B;=jI1Dm?c9B@k6t:C;q;F9E6'2 =&8u5D3)AhBqEs;VBX;zF$AZLvHZCK=,DV:_>1?^?6=29s5j@o<!9,6j5}7%:+/f6p0.:>5mA7<p7k1E8w.z2Q3y3V1N.6*(520v-K+&9j:k=u3R:]3y>,9_E#@c;U56<]2g647c76571s-o8p4b1..q=O>ZA!7A>E7iAs=MHlDN?B8|@K6N: ;I;$8z5a1V<`8J4{2XA>B?EG:~B,;DEWA'LOH+C&<]D0:4=f?3>j<e9K5A",
		"@I<48c6A5T6V9!/96?/]9h5A@`<G7:0|8G.S1}3P3#1 -])W4W0G,p*S91::=<2|:#3D=P9(DL@-;(4b<6295m776p4e1M-=8G4-0^.8<}=|A*6`=l7'A8<fH.Ci>b8@?n5w9J:x:P8N501(<,7v4D2$@aAfDh:IAL:lDt@NKjGPBB<&CP9]=/>`>9<88x4p?s;`8+5g4t5w8y.V5!.w9*4Z@$;`6]097m-q1K2u2U0N-8)*46/x,L*#8e9a<h2?9I2a<q8ECi?L:B4$;O1[5+6!61430q,n7q3b0.-o<L=S@R63=36T@Z<4GQC6>*7i?95B8t:C9|7x4_0U;^7J3y1W@:A:D?9t@{:3DB?mK6FnAk;FBz9$<[>*=f;b8K4@?J;47c5?4S5R8X.157.P8[40?N;26%/h74-D0q2H1{/~,^([3!/L+t)W839:<:1y8z2><G7{C?>}9u3S;&1,4a6.5j3d0N,A",
		"7L34/e-@<%=$@,5a<k6$@6;aG*Bc=!78>g4n8C9q9L7K420+;36~3O1.?l@oCr9O@R9oCw?OJlFRAC;(BQ8^</=a=9;:7z3u>x:g734r4 5&8&-a4d.$803b?*:h5d/B6v,{0U1~1^/U,@(13</ +S)+7n8k;s1J8U1l;}7OBu>V9N30:^0j4<5m5C3C0$+{6}2l/8,w;U<[?[5<<=5^?e;@F]BC=76y>I4U8*9Z94733u/l:q6!3*0d?B@CCD8{@#9;CJ>wJAE{@y:VB/87;p=@= :{7f3Z>d:J6y4P3b4!7a-74=-U7a36>X:=53.w6F,W0)1^16/:+y'u2w.f+/(m7F8J;F1$8 1B;I7 BB>(8}2_:40=3s5C5 2{/d+Z6c2M.|,V;8<5?:4l;r5(?7:aF*Ac<`6==q3z7S9%8a6`3I/A:J662d0A? ?~C#8Y?Z8sBy>NIjEN@A:(AS7e;8<n<H:L7/3,",
		">-9z6D4$B[C_F!<9C8<TF!B0MRI2D-=iEA;I?&@S@6>1:z6mAx=^:17eFIGCJI?{G'@;JKEwQ@LzGtASI%?1BcD8CpAr>X:REXAF=q;PJ-K0N/CiJiD)N0IeU$PgKYE>LiBwFJG}GXEZB@>;IAE0AZ?9MrNrQpGJNKGbQmM>XcTAO>HxPQFXJ5KaKDI@F-A~M-HqEEByB/C)F-;^Bc;xF'AVLyH!CT=:Dh:x>L@#?X=[:=69A;=*9Q72EiFmIi?HFE?dIjECPbLHG?A$HU>bB:CjCHAE>,: E)@o=>:wIVJUMXC/J4CHMVI$TJP&K$D^L7BAEzGMG.E,At=jHsD[A,>bMCN>Q@FtMwG1Q:LlX-SoNdHKOxF/I`K<JsHzE]A[L!HKDoBNATBVEO;,B(;EEMA$LFH*C%<dD=:H>%?T?8=5: 5s@~<e966jEJFBIE>tEz?0I@DkP6KrFo@PH'>3AiC>By@z=b9[",
		"Dc@P<|:XI6J5M4BjIhC%M*H^S{ObJVD?KlA~ETG-FeDjAO=LHPD@@g>GL~N PzFSMPFgPnL?WbSAN>G{OWEbIBJrJXHUECA7LCH)DXB.A@B8E;:iAn;#E0@[L G`BZ<?Cp:%=Y?3>l<q9V5R@U<C8j6HD~F H{>WES>qHuDNOkKRFG@.G]=mAFBzBY@[=C9=DD@0<Y:5HoIlLkBAIBBWLbH0SUO1J/CjKDALE+FZF>D<A+<~H.Cs@F=zL[MTPUF(M*F>PGKvW9RyMpGWO(E<HnJIJ$H+Dl@jKlG!D%Aa@hAjDb:=A7:SDW@/KNG4B.;qCH9V=3>d>F<D9/5$@-;q8A5uDTENHO> E&>9HGCrO<JwEv?VG0=<@uBJB+@*<p8gCo?X<'9]H;I7L7AkHkB&L,G_R|NcIXCAJoA'DZF7EpCw@[<YG[CJ?n=KK~L}OuEMLHEaOfK9V[R<M9FyNUDbHCIuI]G!DK@A",
		"KMG2C_A2@AA5D59`@c9sD#?NJtFUAR;6Bl8}<W>1=n;s8[4W?!;I7q5LD$D~Gw=NDH=bGeC=NZJCE9?#FS<g@?AwAU?Z<B8>CD?2;[98GnHlKfA;H7AJKQF{RAM|HzBZJ7@BD$EUE<C;@+;~G/Bs?F<yKZLQORD~L#E2O;JeV(QfL^FEMwD/GeICH~G*Cm?kJnF!C%@_?f@eC]96@/9ICL? J?F%@y:aB88I<&=!=?;B8-4&?.:t7A4vCRDLGJ<zC|=1G=BhN1IjDi>HF#<.?jA?A$?$;o7gBr>Z;+8_G>H7K6@fGg@|K&FVQuMZHPB9Ig?|CRE/DiBr?W;WFZBK>p<NK#L NuDMKED^NaJ6UVQ9L6EwMSCaGBHtH[F[CI??JKF2B_@4?B@8C78b?d8sC >LItET@T:8Aq8$;_=7<v:x7a3Z>`:J6s4KC&C~Fy<NCJ<bFgB>M[IDD<>(EZ;p?JA'@b>i;N7K",
		"BM>::_8;FnGlJd@;G6@KJQE~QCM#G~AaI??MC1DdDNBN??;4FAB&>T<'JbKVNUD K#D2N<IfU,PjKeELM%C;FuHTH5F?C'?%J)EsB:?q>u?pBe8:?18JBL>#IAE*@#9kAB7W;5<n<R:X7C3?>G:26Z42BgC_FX<)C&<7F@AjM3HnCo=PE/;<>{@Q@9>:;*6~B.=s:E7wFVGLJJ?uFt@'J-EYPxL!GTA>Hp?*BaDAC}B*>n:oErAc>*;eJ9K7N+C^JSCiMiI<TYP=K7D{LWBjFLH&GkEoB^>WIaEIAt?I>U?JBG7q>p7~B+=SHxDV?U98@r7%:d<=<#:(6r2k=t9!6*3]B7C/F*;YBU;jEnABL`HGC==(DY:p>I@(?e=o:V6VAY=I9m7KE|FyIn?DF;?QISE$PDL$F~@aH=>KB.CbCKAM>>:6EDA+=Z;.IiJ!MYC%J$C1M;HcT*OfJdDJL$B8EsGPG2E9B =|",
		"I$DmA6>m=s>mAc77>/7EAG<zH:D$>y8f@>6U:2;m;N9U6=29==9)5N3'AZBUEL:|Aw;-E4@`L'GdBe<HD(:6=x?N?7=7:'5yA(<i996iEFF9I8>bEb>qHzDHOjKMFH@2Gg> A!C=B{A)=n9mDp@]= :YI+J%LtBHI<BSLSH)SFO.J(CpKLAcEFG$FiDpA^=YHbDJ@q>E=K>>A56^=Y6g@p<<GdCC>G8+?i5{9`;:;#9'5t1l<x8^5,2!A5B(D~:KAF:VD[@,KLG4B.;yCQ9k=G?*>g<s9[5!@`<P8s6PE E{Hl>@E3>FHDCrO2JrEo?VG5=IA/BgBR@W=I9BDO@6<c:7HoIbL!B&I#B-L4GZR}N[IZC@J{A4DuFTF<DEA2=.H6C}@G=z=$=w@m6>=56H@I;zG8B~=u7c?;5U94:s:W8c5M1M<R8?4c2=@lAfDZ:,A$:7D:?gK+FhAg;JC*99<|>T>@<C965.",
		"@=<#8Q6$D^EOHL=sDr=~H*CRNuJVER?:Fp=*@eBEB)@4<|8|D%?p<99pHCI<L-A!HOAcKbG6RRN;I4B~JX@qDRF2EuC~@j<gGoCZ@#=W<]=S@H5s<l5z@#;LFrBQ=U7:>z5.8r:K:5875(0{<)7k4:1h@CA5D09Y@V9dCj?:JZF@A<;)B_8{<X><=z<)8m4m?o;]8 5ZD+E%Gs=FD9=NGLB|N;I}Dx>bF@<V@<AwAc?j<[8UC`?G;p9BGvHhK_A(H#A.K6F!R$M_HaBGJ(@=D$E`EKCS@C<>GGC.?V=(<-<{?p5<<25C?D:tF5A|<v6f>?4!8;9|9`7n4X0Y;]7K3m1G?s@kC[9+?{90C1>]I~E`@`:GB(8;< =Z=F;J8>46?D;+7X5*CbDRGL<qCm<uF|BEMhIGDF>.Ej<%?eAFA-?9<&8$C+>t;<8pGCH9K*@VGH@YJVF(QBM+H#ApIJ?gCJE/DsC#?m;l",
		"FrB^?$<X;Y<O?A4k;a4o>r:>EbAA<D6)=j3|7f9A9/744(/};-6n3<0i?B@1C*8O?K8WB]>*ILE/@,9uAO7j;J=.<o:}7h3i>n:]7 4YC)C~Fm<=C.<AF=AmM+HoCi=UE1;J?.@l@V>`;Q7NBY>C:l8AFsGeJZ@#Fw@$J)EOPtLSGVA<H|?4BzDWDDBK?<;6FAB'>P;~;);v>l45;,4:><9iE+@q;m5^=93X788{8_6m3V/W:Y6G2h0A>m?eBT8&>u8+B)=XHvDZ?Y9CA%7;;$<_<L:R7D3=>I:/6Y4)B_CNFF;kBf;oEwA?LdHCCE=,Dk;&>j@M@8>C;371B9> :G7wFIG:J+?SFE?UISE%PAL+G%@tHP>oBRD:D#B3>}; F(Ar>6;i:g;[>H3q:c3q=q9@Db@E;H51<s3+6s8P8@6E3;/3:B6'2S/~>W?DB;7!>V7^Ac=.HQD4?48}@!6x:!<A<(:67 3#",
		">)9t6;3pBAC7F&;PB?;OEI@wL3GwBq<`D=:Z>@@%?m=z:j6jAr=^:'7YF,F|In?7F,?5I7D!P K!F_@EH+>AB-CiCZAb>V:PE!AA=j;9:@;->#3F:>3I=L8vD9?{:w4g<C2b6D8,7o6#2k.n9r5`2#/X>%>yAe75>%78A5<dH#Ce>a8L@,6D:+;h;U9^6Q2M=Y9A5j3<AoB^ES:wAo:wD}@FKkGIBL<2Cr:+=q?Q?>=H::67AB=)9Q7 ESFBI3>XEJ>WHUD%OBK,F'?wGT=tAWC@C'A7> :$E(@r=5:i9f:Z=F2p9_2m<k8;C[?@:C4.;q2+5t7R7B5H2;.39?5 1K.v=L>8A/6P=I6Q@W;}GEC'>)7r?U5r9Y;?;)966$2#=)8o552fA5B'Dr:=A,::D5?cJ}FfA`;RC/9P=7>}>i<y9i5k@q<]9 6RD}EmHZ> Do=zGyCDNfJFEK?3Fx=3A B`BT@]=T9N",
		"D!@@<i:599: <r249)20<37[B}>c9c3S;41T5:7#6i4{1h-l8q4_1#.V=#=s@]6)<r6$?{;LFfBN=J7:>w588~:b:P8]5O1N<Y8C4k2>@nA^DO9r@f9lCn?4JWF5A9:}Bd8|<j>L>><I9?5;@H<.8W6&DWECH5=VDI=QGOBxN7I{Dw>iFH<k@QB=B'@;=)9.D2?}<?9s8n9b<K1u8a1p;k7:BX>=9<3):j1'4p6R6D4N1D-?8L420[.)<[=G@;5[<S5Y?^;&FKB+=.6u>X4s8!:A:.8<5-1-<77~4G1w@HA8D&9K@:9FCA>nJ+Eq@k:]B:8[<@>*=q<&8s4v?};k815dD1E$Gl=5D#=.G+BTMtIVDZ>DF,<E@4AqAd?l<c8[Ci?L;v9B8H91<%1D8;1@;D6kB2=s8u2e:H0h4P696#430},~8%3m00-a<.<}?i54< 51?,:[EuA^<Z6L>,4M869z9h7v4g0f",
		";n7W3z1L?x@gCV8z?l8tBv>>IbEA@G:/Au81;~=a=V;a8X4S?a;D7k55CdDKG;<XCK<QFQAzM=I$D#=tEU;y?aAOA:?O<>8CCG?5;S9'7|8l;R0x7a0n:g68AU==8>2/9q023|5a5S3_0T,R7^3E/k-:;h<S?B4`;S4V>X9{ECA#<)5q=Z3v7d9I9:7H4<0:;E7-3T1#?R@>C+8K?98@B:=bH|Dc?^9RA27W;?=-<w;/7|4%?*:v794lC6D(Fl<5B|<)F AILfHHCJ=6D{;:?+@m@c>n;g7bBp>T:|8G7J82;#0?7407::5^A$<b7e1R98/W3B5,4x3,/{+}7(2o/5,c;0;|>f4.:w4'=}9MDf@O;J5<<x3<7$8l8Y6k3]/`:i6V2x0L>v?fBP7t>b7jAh=1HRD2?78}@f7 :p<R<G:R7K3G>V::6c4.B_CEF5;QBC;FEF@lL0GrBt<gDJ:o>X@E@1>E;478",
		"B<>):H7yFBG2Iv??F(?4I,DZOvK`F_@RH7>YBFD.C{B,>|:zF&Aj>0;!J+JtMbC%ItByL{HBSgOGJOD:L%BAF3GvGjEwBm>iIuEYB#?KMyNaQOFmM!FbP^L*WFS-N+G}O^F(IoK_KMIeFVB!MaIOEmC@QdRSU7J[QCJNTFOp[0VsQuKeSNImM_OGO=MKJDFAQOM3IZG$F$FgIT>oE`>aHdD*OOK1F8@'Gm>1A}CgCXAi>^:^EiAR=u;EIoJZMDBdIPBXLPG{S8N~IzCpKQAxEaGOG=ERBC>HIOE=A]?2MZNIQ1FTM>FEP?KeW'ReMiGUO@E]IQK6K/I;F6B2MAI$ELBsQER*TuJ2Q#J$T#OGZhVKQNK?S&IKM8O'NuM.I}F$Q+LsI5FcE[FHI.>PE8>CH:CgO$JkEh?]G@=dAPC<C.A@>4:6E?A)=J:wICJ.LtB7I%B*L)GMRqNQIXCCK.AJE=G FvE&A|=y",
		"I,DnA9>aM2MuPbE{LjElOhK0VNR4M3G'NgE0HxJhJVHnE_AfLlHZDyBMPrQ`TCIfPKITSJNtZ2UvPwJjRRHtLfNONDLSIIEGPRL8H!F(E'EkHW=rDb=cGcC)NNJ.E7?%Fn=2A$BkB_@o=e9bDm@R<u:AHlITL?A]HIAPKIFrR0MuHsBiJK@sD^FPF>DVAG=MHRD?@!>/LRM@P%EGL/E7O0JXUuQYL!FJN5DUHJJ2J,H;E7A4LCH&DLAqP?P~SiI#OoHmRmN2YVU8P>J0QwH?L0M{MoL(H{D~P+KqH5E`DXEAH%=BD)=0G%BQMkIWDV>MF2<Y@GB6B'@==094D<@(<H9wH@I+KnA/Gv@yJtF;Q!M>HEB2I}@?D5EyEsD$@|<xH+Cl@8=^L0LpO]DtKbD`N!I}U>P~L EsMYD$GpIcIUGnDa@hKoG!C{AMOqP^S@HaOFHNRAMkY&TkOjI^QEGkK]MKMAKUHMDN",
		"OYK@GbE/D*DnGW<rC_<aF_B%MHI)D1={Eh<+?}AfA_?o<i8hCv?[<#9JGuHZKE@_GL@PJJErQ1LuGsAiIK?tC^EPE?CX@J<RGYCH?f=:K^LKO.DOK5D=N3I]TxP_KaERM<C]GQI;I3GCD=@<KJG/CT@{OHP,RsH,NwGuQtM8X]T?OHI:Q'GKK?M-M K5H+D,O5JyG>DfC`DGG-<IC2<7F.AYLtH`C`=ZE?;j?XAJA;?R<D8HCM?8;U9%GHH3Js@6F{@$IzEDPdLHGOA?I.?OCGE1E,C;@7<3GBC$?J<nK<KyNcCxJeCbM`I$TEP(K,D}LgC2G%HuHkG'C{@$K-FuC6@aO&OkRKGhNJGPQCLmX)SqNpHhPPFzJlL^LTJkGbCfNpJYFyDFC=D#Fc;}Bd;dE_A$LGH)C3=#Dq;5?.@u@p?$;}7|C.>o;98^G,GkJT?jFU?TIMDpP/KqFr@hHO>yBhD!DNBi?!;e",
		"FkBZ>x<KJmKZN:CZJ<CBM4H!StOZJZDML7B]FRHAH;FOCJ?KJXF>Bb@+NSO6QzG4M{FxPuL7WYS9NBH1O}FDJ<L*L%J:G4C5NBJ(FJCpBjCMF3;LB4;6E.@UKpGZBY<QD6:a>N@C@4>O;B7JBP>>:Z8+FLG7It?6Ex>~HtD?O!KAFF@7H$>FB=D'D B2?/;-F=B >I;mJ;JyMbBuIaB!LXGxS<N{J%CtK`B*E{GlGcEzBq>vJ#EjB.?XM|NcQDF_MBFFP9KbVzRfMfG`OHEtIeKYKMIeFZB^MdINEkC9B.BsEU:pAV:XDR?uK:F{B(;vCh:/>)?r?n> :{6wB)=g:.7QEzFZIC>XEE>BH>C`O JdEg?^GG=sAeCZCOAj>_:fEmAY=u;CIdJLM*BHI)B/K~GKRdNNIOCFK0AYEOGBG<ETBO>RI^EEAd?-MPN1PpF(LlEhOcK'VKR-M9G+N{ECI>K.K+I@F>B?",
		"MMI2EUByArBQE4:HA.:,D#?HJeFOAQ;LC59c=T?K??=[:O6XA^=K9h78EXFAH|>;Dy=}GoC9NTJ;E@?5G$=KADC3C0AD>A:AEPA5=Z;#IKJ+LoB$HjAbK!FyR=MyI$BsJcA.E(FxFtE0B,>0I=E%AF>mM4MtPVEmLPEQOCJiV$QjLiFdNLDzHmJeJ!HxEoAwL~HjE)BTAFB-Di:'@g9iC_?&JEF)A1; Bp97=3>}>|=1:160A@=$9I6lE8EsH[=mDX=RGMBmN0IoDt>hFS<}@pBdB[@v=m9uE @k=.:YH|IcLAA!H<A@K1FYQqM[H[BSJ<@gD!FPFHDaAZ=_HiDR@q>=L_MCP#E9K{DxNpJ4UVQ8LDF6N*DOHLJ;J9HLEJAILWH9D]B @yAWD<9O@794C,>PImEU@Y:SB>8m<_>W>K<h9!5c@h<S8n6<DZEBG|=;Cy<~FpB<MVI?DB>9F'<Q@JB<B9@O=K9M",
		"DZ@?<`:&HJI)Kh@zGa@ZJTErQ7LuH AqId@.D+E{EzD5A4=7HED+@L=pL6LqOQDcKEDBN6I[TuP`KaE^MHCyGlIfI]G{Dq@{L%GnD,AW@FA,Cc8|?Z8[BM=rI3Dv@ 9uAh82</=|={<39251@A<$8I5kD5DoGU<dCL<DF=AZLzH[Cc=WEG;r?jA`A[?v<p8vD$?k<.9VGyH!K;@SG2@2J EHP^LHGGABI,?[CQEJEECb@[<cGlCV?r==K[L>NxD1JoClMaI%TEP'K2E%LwCAG@I1I3GIDJ@JKZG<C`A#?y@SC78G?.8(A~=BHaDG?L9EA17_;T=L=D;b8Y4b?j;W7s5@C^DCF|<8Bs;vEgA3LKH6C8=2D{;J?BA6A2?K<G8LCX?@;a9*GMH-Ji?{F^?WINDlP0KnFz@mHb?-C+DzD{C5@5<7GFC+?N<pK9KrNTCdJHCBM6HYStO]JaD^LKB}FsHnHeG'Cy@%",
		"K*FsC/@Y?H@.Be7~>!7]AO<uH4Cy?$8y@l7;;9=,=,;B8A4A?O;17R4sC;CtFW;gBN;FE@@]L G`Bi<^DP:{>x@n@m?,<)8.C;? ;A8fG)GeJC?WF6?4I%DKOcKNFO@KH6>hB_D[DVBw?q;{G&Bo?,<TJnKPN(C<IvBsLeH+SJO/J:D0L'BPFQHDHGF^Ca?bJsFVBz@<?4?jBK7W><72A*<HGhCM>U8N@>6n:f<`<Z:x7q3z?&:n7.4WBvCYF4;JB';&Dq@;KQG<B><:D':W>P@I@E>b;]7dBo>Y:w8AF`GAIz?0El>eHYCuO7JtF ?rGh>4B6D*D.BG?J;LF]BA>d<'JKK%McBpITBKL?G_RzNaIeC`KNB#EwGtGmF2C*?4J;F'B@?i>W?:Ao7)=b6c@R;yG6B|>$7{?k6;:7<-<,:F7D3H>V:;6!4 BDB}E]:lAP:GD??[J}F]Ah;[CO9y=w?k?k>(;'7,",
		"B;=~:C7fF,FeID>TE4>.G|CCN!JFEH?FG2=eA!CXCRAs>j:uE{Ag>#;KIeJGL{B3HkAiKYF}R<N$I.C'J{AKEMGAGEE!B]>]IlEMAn?/>%>[A;6G=+5~?v;6FXB<=G7??35c9`;Z;X9u6p2v> 9f6%3IAgBFD}:4@n9lC[?%J<F)A+;*Bt9K=E?B?@=`:!6eAn=X9r7;EUF4Hh=yDU=NG@B_M}I`Dl>bFZ=)A-C#C*AE>J:ME`AB=e;&IHI{LYAaHBA6K*FHQfMLHTBQJB@vDqFoFlE1B+>7I@E+AF>m=Z>;@n6$<Z5W?D:iF$Am<r6o>a5694;.;/9L6J2P=]9E5d3+AJB(Da9p@O9EC8>SIrER@]:QBI8t<w>n>s=1:468AI=.9Q6rE8EpHO=!D<=3G#BCM[ICDE>BF0<e@^B^B[A#=z:*E2@{=7:^HwIXL-ABGw@uJbF)QCM+H2B,I~@PDQFIFNDiAl=p",
		"I#DdA(>G=;=p@N5Y<<50?(:DEfAH<T6J>?4l8j:c:c9$6#2)=78{5>2aA#A]D89I@&9 Bn>6INE:@<:;B(8!<U>R>N<o9j5u@~<j9(6PDjEJG}=2Ch<bFQAqM1HsC~=vEn<=@AB7B=@W=Z9!Dn@P<s:4HVI-Ki@qGS@FJ;EWPvL[GfAbIV@-D*F'F%DEA@=HHPD8@R=w<d=C?w5,;c4a>N9uE/@y;~5~=p4H8F:C:C8b5^1e<n8U4o25@PA,Cb8q?O8FB9=VHvDX?e9ZAS8#<(=|>'<B9G5J@[<>8_5|D?DrGN<WC7<+E{A<LXH@CF=DE5;k?gAhAg@/=+98D@@,<C9hG~H[K-@=Fo?jIUDzP6K~G*A(H{?RCTEOETCr@t<yH+Cm@.=N<><r?L4T;24$=u93DT@6;E5<=63e7i9b9g8'5)1.<=8 4C1c@&@!C68B>{7rA`=#H;D%?(9)@u7P;L=N=L;q8l4y",
		"@%;n8)5PChDGFv<*B];VEA@`KyG^Bg<`DY;,?2A,A6?S<Y8^Cp?S;u95GUH)Jb?iFH?9I-DFOeKGFS@LHC>uBvDtDwC<@;<EGQC9?U<w;d<?>s4$:Z3U=A8eC}?i:m4m<^377493937V4S0_;i7S3n16?O@,B_7m>G7>A.<KGhCK>W8N@G6t:y<p<y;78=4A?T;87[4yC>CpFM;TB3;%Dt@3KPG5B><;D.:e>b@c@c?*<&82C:?%;=8bFzGWJ*?:El>hHRCwO1J{F%@&Gy>RBUDSDWBw?w;}G,Bn?,<L;:;p>G3R:/3$<t83CT?7:F4><:2i6p8j8r724509;I7+3J0g?)?[B67?=z6o@`<#G>C(>.8/?}6Y:W<Z<Z;$7}4/?7; 794^BsCOE{;-A^:WDA?cJ|FeAn;kCd:;>A@>@H>h;n7uC*>k;.8JFgG:Io>tEP>>H1CJNjJNE]?WGR>)B.D,D1BR?T;!",
		"FjBQ>n<1:|;T>)349i2_<J7lC&>p9u3y;l2I6H8K8K6q3n/z;&6n3)0O>f?CAs7$=W6N@9;VFpBT=_7X?S6&:.<)<4:R7Y3^>q:T6v45BUC)Ea:fAD:2D$?=JZF<AF;AC79n=p?r?v>?;?7KBU>>:W7yF3FiI;>HDz=sG!C#N9J%E+?-F~=YA[C]CbB)?*;4F@B(>B;c:M;%=V2`992-;z79BY><9J3B;=1l5t7m7w673=/B:T672X/t>7>gAA6G=#5r?b;#F>B&=.7.>~5Z9X;[;[:$6~3/>8:%6=3bAwBSE :0@^9VC=>_IvE`@h:hB`9:=@???G=h:l6tB&=g:(7EE`F5Hh=nDH=6G(B@M`ICDS>MFK= A*C(C1AP>T:YEgAJ=g;&9q:F<y2%8[1O;<6]Au=a8h2l:`1?5?7E7G5o2l.y:$5k2#/G=Z>5@a5o<B5:?$:CE!AB<M6H>C4v9#:};-9M6V2!",
		"=o9R5r30AMA{DR9T@/8yBk>&IEE(@5:0B*8a<f>i>p=9:<6HAU==9W6wE0EcH3=<Cl<aFIAkM$HoCv={Eq<P@SBXB!A&>':4E>A(=A:c9L:$<Q1[8/1 :k6*AG=+8:24:20d4o6k6w592@.E9X5:1!.w=9=h@B5F< 4m>]9wE5@x<$6#=w4T8V:[:_9+6*29=C9.5F2i@~AXD&92?`8WB==^HrD]?c9eA!89<?>C>L<r9w6%A3<w956SDkE@Gp<uCM<<F,ADLdHFCV=PEN<$@.B,B8@Y=`9fDx@[<z:79&9U<+107f0X:F5eA <j7r1u9j0I4I6O6Q4z1x.*924{15.Y<l=G?r5 ;P4F>.9ODf@O;Y5W=Q4)82:0:;8!5c1j<|8a5#2@@!A.Ca8d?>8*Ax=2HQD4?C9?A<7s;{=}>)<M9P5Y@f<K8f6%D=DnG@<GBx;lEU@vL0G{C&=-E#;c?fAnAs@>==9J",
		"DR@:<O9p8U9,;W0a740)9q52@N<47C1?9>/s4#5~604O1X-]8o4O0n.*<E<q?H4I;$3n=_8xD9?{;*5*=$3^7d9j9q8=5@1N<Z8C4Z1z@/@aC-84>_7SA8<YGoC!>c8h@`7@;G=N=X<$9)57@D<-8F5eCyDLFw;zBL;:E%@=K[G?BP<MDN;'?4A3AB?c<l8sD)?h<+9D828^;3036h/T9@4Z?u;]6g0k8c/D3H5Q5W4$1#-38<4(0>-a;t<M>v4$:O3C='8FCZ?B:I4I<C2}7*9-9;7`4h0s<'7i4*1F?_@1Ba7d>:7%@p<(GEC&>48.@-6c:o<q=#;H8P4Z?j;N7k5(C@CmF?;BAt:dDM?kK&FnAu;{Cq:S>W@`@f?5<58FCO?:;P8r7U8-:U/^6./ 8h4*?C;+670482.g2r4q5 3C0L,S7f3I/i-&;B;n>D3D9z2e<V7mC/>p9~3|;x2T6!8`8h72450B",
		";O773Q0o?(?XB&7,=Y6K@0;PFeBR=Z7a?Y6<:C<L<T:~8#41?<;$7;4ZBlCAEk:qAB:1Cx?6JRF8AI;HCK:%>4@5@E>f;o7tC)>e;%8<7)7R:'/'5!.H873Q>n:V5c/g7b.D2L4V4^3,0-,;7E3-/B,a:r;G=o2w9D29;z7>BS>>9F3J;E2%6/878D6n3u0%;56y360R>f?6Aa6a=45{?g:~F?B =470?25j9z;}<1:V7a3k>}:`6}48BOBxEH:G@w9bCK>gJ#Ek@v:~Bx9^=d?q?x>I;J7[Be>Q:e8*6i7?9e.l58.*7l3->C:,57/978-r2#4&462[/e+m7#2c/$,>:X;'=W2V9,1r;_6tB5=s9&3#; 1!5h7n7}6H3P/!:l6R2m0,>A>nA<6><k5Y?>:[EoAZ<a6h>`5E9L;Y;c:5793K>V:A6V3vB)BZE :'@R9AC(>CI]EC@R:PBR9,=<?>?O=s; 7)",
		"B==|:=7T6A6i9<.94m-V7E2!=z9_4n.o6l-K1T3!3f23/7+E6R2;.S+r:':X=#2(8R1C;&6EAY=E8L2R:K1-557>7J5t2y/+:96 2:/Y=l>?@h5j<:5&>l:%EBA%<664>74o9#;&;89!6g2n>#9`5}36ANAvDH9E?w8aBL=eI Di?u9|Ay8_<g>t>}=N:O6_Ag=P9c7$5b668[-a4-,~6b2%=;9&40.462,o0}3'371^.g*q6$1e. +;9P9z<I1G7x0b:O5eA'<f7x1v9x0U4d6j6{5F2Q.]9o5R1n/(=<=e@15.;Y4D>*9ED!@H;R5[=V4=8F:U:`93672J=U9A5U2tA$ASCu8x?A80Ap=.HFD/??9BAE8$<5>:>M<r9~6)A<<{9;6R5=5e85-03a,H641I<g8K3!-]5_,@0N2X2f14.:*H5U1<-T*p9&9S;{0}7I079v56@H<47;1B9<0 4-6;6H4w1}.2",
		"9?5)1?.]<l=>?d4f;33{=a8yD5?v;)5'=+3e7y9~:78^5l1u=-8j5+2?@V@{CJ8D>u7!AG<^GzCb>p8u@s7X;c=q=}<O9S5e@p<Z8o6/4m5?7b,f30+~5`1#<88%3.-451+p/|2)280b-j)x5+0o-,*H8[9*;S0R7 /h9R4h@);i6|0z8~/[3m5r6(4O1[-e8x4[0x.1<G<n?<47:d3L=28KCc?M:Y4b<_3H7S9d9o8C5F1Y<b8M4`1~@-@!B~8$>J79@x<8GNC9>G8L@O72;D=L=`<*955>@P<18K5a4H4o7=,82h+O5;0P;o7S2f,g4k+L/^1h1z0H-R)^4n0R,j*%878`;)0'6Q/<8|4;?O;<6D0M8H/03;5L5Z4/16-J8V4B0V-u<$<Q>r3r::3%<e7}C8>|:/41<62r7*919H7p5 1,<A8 4@1T?j@0BZ7Q> 6c@L;`F}Bc=t7y?|6a:q= =1;_8f4v",
		"@&;k8$5@4 4N6r+r2;+)4f0&;87%2-,543*v/'141D/r,z),4:0#,:)V7g86:!/!6).n8U3i?':g5x/v7|.Y2n4u5/3W0g,q8)3g0'-;;P;u>A3:9f2L<37HB`>H9T3[;Y2B6O8`8o7D4K0_;j7U3h1(?3?`B#7$=G66?s;3FHB3=?7F?G6*:;<E<X;%814=?N;27L4c3H3p6:+51b*H42/G:f6J1]+^3c*C.V0^0r/>,I(U3g/J+e(|727Y:$.|5H.17q3.>C:/58/C7?.)244F4S3(0-,A7L37/J,i:t;E=e2e9,1u;U6oB(=m8}3%;+1j6#8-8C6l3z0&;86u330F>Y>|AH6?<l5P?;:NElAR<e6j>p5W9j;y</:]7f3t?%:f6{462s3>5a*_1()q3S.p:'5r0{+)3')n-|010B.s+|(13>/&+:(U6a7.9O.M4s-!7A2X=r9X4j.l6s-S1j3s402Z/l+w",
		"712o//,A:U:u=?238]1?;%69AS=;8K2S:V1@5Q7d7u6K3T/i:v6a2u04>?>iA*6'<H52>l:+E>A+<76B>D5-9?;N;b:37>3M>]:C6[3t2W3 5G*A0j)O35.H9d5G0!*]2e)G-_/i0$.O+^'i2}._*{(36G6l97./4X-=6}25=J934=.F6D-/1=3Q3a2:/B+X6d2P.d,$:/:[<y1y8>1):d5~A4<z8*2/:30t5-797Q5}30/=:P632M/a=s>9@_5V<$4d>M9`D~@b;v5y> 4c8x;(;=9k6w3(>99{663M2/2U4y)s0=)&2e.#985%0/*:27) -./@/O.$++'?2K.6*I'g5r6A8a-`4&,m6O1g= 8f3x-{6&,d0{3'3@1i.y+&6;1y.8+J9]9~<I1<7g0H:/5A@]<C7V1]9c0M4a6s7)5Z2c.t:$5g1{/6=@=h@*5&;H42=m9-D@@/;;5H=J468H:Z:n9A6K2[",
		"=g9M5`2w1U1|4?):/`(G2,-B8^4D/Y)!1f(I,c.o/,-W*h&s2+-g*%'65F5f8.,~3J,+5m1$<<8%33-=5>,+0;2Q2c1=.F*]5j1V-h+&9.9V;q0l7-/r9N4h?{;g6t0~9&/m4&676O4~20.?9R561N.c<q=6?X4L:r3S=88ICf?I:`4d<o3U7o9~::8h5x2(=;8z562J1-1O3r(h/1'r1S,i7}3h.s) 1 'm+}.7.H,~**&@1L-7)J&f4o5=7Z,X2x+a5>0V;j7Q2`,e4l+Q/j1x270d-w*(5=0|-:*L8]8|;C056^/<9 42?N;26D0J8Q/:3Q5d5|4R1`-s9&4j1#.9<E<i?*4#:D3+<e8#C6?$:/4=<=3*7<9P9c8:5D1X<f8P4c1}0Z1%3C(=.`'F1(,>7X3>.S(W0a'D+^-j.(,S)e%p1),g)'&94L4l74,'2O+.4p0$;=7$24,=4A+-/@1U1i0A-K)`",
		"4n0X,k*)828[:w/r64.y8T3n?#:m5y0(8-.v305C5[4/1<-L8[4?0T-i;t<;>[3R9w2Z<?7QBn>S9j3n;{2b6~919M7z5/1;<N8.4F1V080W2z'm.7&x0[+q7+2s.#(/01&}+2-J-],8)A%X0d,O(`%z4#4L6e+a1~*g4D/]:r6]1l+u3|*d.}111L/|-1)A4V09,R)d7r83:S/C5h.E8)39>U::5P/W7b.L2f4y573i0y-.8@4%0<-P;!;}>>329R25;o7)B<>*973G;J2:6N8f8z7S4]0r;~7h3y16/m082S'M-l&R00+E6!2C-V'!/g&N*k,z-:+h({%*0@+}(;%L3]3{6A+21X*53v/(:A6$15+=3C*/.F0]0u/O,](s4&/k, ):7B7g:$.y59-|7V2n> 9k4v/&7)-u2-4D4!340B,V7f3M/`,v:~;D=`2U8v1Y;:6MAh=M8d2h:u1[5y8*8H6v4-0:",
		";P703K0[>j?*AL6=<b5B?$:8EOA8<G6S>W5E9X;o<&:]7g3}?-:u7*4EBLBtE0:*@G9.Be=~I3D|@-:9B@9+=D?W?q>E;U7eBx>!:r8(F4FSHr=cD*<dFGAVLrHVCm=tF&<mA.CAC^B3?D;SFfBG>^;nIzJ;LYAKGl@NJ,EBPWLDGRAcIg@ZDoG-GBE{C(??JJF2BA?Y>0>V@m5f<&4j>F9^Dt@^;q5z>(4o90;B;a:47H3W>m:N6g3vB&BBDb9O?s8NB1=?HZD??S9[Ae8R<l?&?B=y;-7BBU>=:R7gEpF4HM=@C!<>EtA-L>H,C8=IEN<A@WBrC-Ae>s;,F:B#>5;MISIwL2A'GD@&I`DsP.KqG*A2IA@+DKF]F}EPBe>rJ+EhB&?5=t>3@T5C;h4D>'96DN@4;E5P=V4F8]:w;29j6w31>@:)6<3TA[B$D=95?Q87Am=(H8D$?09=AB81<J>a>}=V:g6{",
		"B0=s:+7?EGEfH%<sC6;qER@bK}GaBx<~E0;v@9BLBlAA>W:gE}A^=w;(I4IOKm@!F}?!I;DPOfKRFb@qHv?hC}F;FQE-B8>PI!EFAV>o=F=l@%4z;73z=U8mD%?n;#5/=94%8B:U:r9F6Y2h=|9^5v3+A7ATCr8`?%7!A><KGgCJ>a8i@v7c<#>9>W=.:@6RAe=I9_6qD{E<GW<HBe;ED|@4KFG4BA<SDY;O?gB'B?@z>):?EKA3=A:WHZH|K5@*FE?(HaCuO/JuF-@8HG?3CVEjF/D`Av>'I<DxA2>?<z=5?T4@:c3=<}8/CJ?/:C4M<X3G7b9|::8t6'2>=O975I2^@cA'C>81>J7,@a;xG,Bw>'87@=7/;I=d> <!9m6'A8<~936HDLDkG$;pB.:gDC?RJkFPAh;qD&:n?5AIAm@B=Z9jE$@b<{:,H8HQJn?XEx>QH/C>NUJ>EO?_Gh>!BuE5END,A9=Q",
		"H_DH@X=p<G<k?#3v:12q<H7_Bp>[9j3x<%2r729K9j8C5V1i<|8`4v2+@4@RBm7[=z6T@3;>FXB9=O7U?d6P:q=+=M<&9=5P@f<J8b5rC|D:FU;BA_:<Ct?)J;F&A4;DCJ:?>W@vA2?o<}9:DG@2<A9XGYG|J2?'E?> GXBnN&ImE#?/G=>*BJD_E$CV@l<|H5Cs@/==;y<5>S3>9`29;x7)BD>(9>3H;T2C6_8x977o5#18<J804E1Y?a@#B<7.=I6)?^:uF(At=$76?=62:K<h=%;`8o5)@7;|8/5DCFCfE{:mA*9fCA>RIjEQ@i:tC*9t>=@S@w?M<e8sD-?h< 9-G7GNIj>TDt=NG.B>MWI@DU>dFp=eB$DBD^C=@K<cGpCW?f<z;N;n>$2t9.1o;F6_Aq=`8o3$;.2 6?8[8z7V4j1 <47w4-1>?C?^At6`<{5T?1:>EXA<<U6^>p5^:%<=<b;;8U4h",
		"@#;b7{5,C5CLEe:N@i9ABx>*I=E(@9:LBV9N=i@.@I?*<98SCa?K;Y8pFpG4IE>7DL=,F^AsM(HpD&>5FD=6AYCsD9Bo@(<:GOC1?H<V;2;K=f2Q8o1G;&61AJ=,8B2K:Z1I5k8(8J7&4;0P;e7J3_0p>x?7AO6=<W54>i9|E/@w<'68>?559O;p</:n8 4=?L;67E4ZB[BzE.9|@58pBH=ZHnDV?k9vB+8v=>?U?{>T;m7~C:>w;38>FHF]Hw=_C}<SF3A@LZH@CV=cEq<cA$C@C^B;?L;cFtB[>m<#:W:u=,1z840q:G5^@o<^7m2 :,0~5=7[7x6U3f/};06t3)0<>@>^@r5`;x4S>-9:DQ@6;N5X=l4Z9#;;;a:97R3c>z:Z6r3~B*B@DZ9B?_85An<|H4Cz?09BAN8G<e?*?G>(;77PB]>E:Q7dEcF$H4=&C:;xEN@dKvGdBv=*E9<.@QBnC4An?&;:",
		"FMB/>B;O:&:><T1>7Z019m4y@7;x731=9O0>4c6}7F5~3:/N:e6H2^/l=r>,@C5,;E3{=S8eCw?c:s5*=34,8H:k;,9l6~3=>L:76E3ZAXAvD&8r?&7`A4<FGYCD>Y8i@|7o<9>T>|=V:p7%B<=z:47@EHE!Gt<ZBu;IE'@1KKG0BH<UDg;[@ B@BbA@>T:kE}Ab=t;(9!9w<.0y72/l9B4V?f;T6b0v9$/z4;6]6}5_2q/.:>6&26/I=I=f?w4e:z3T=+89CN?3:I4T<h3W8 :=:f9A6^2q>.9l6'31A:AMCe8J>e79@r;~G7B{>28B@Q7H;h>->M=0:B6]Am=V9e6xDwE6GF<4BG;%DV?lJ}FkA|<3D@;8?YAxB=@x>0:GEZA?=Q:b989Q;e0O6h/?8w4&??;$6=0G8[/K3r6.6U5/2I.[9s5U1m.y=%=;?S4;:U3+<a7pC&>m: 45<A3;7Y9}:?9#632O",
		"=]9F5S2f@cA#C17|>06k@>;QFcBO=c7t@*6~;H=g>1<k:'6:AP=09D6NDRDfF{;aA{:OD-?8JRF7AQ;^Cr:f?/ANAt@R=j: E6@v=+:88k9$;7/}67.n8D3W>h:W5g/|8*/%3D5i6+4m2#.?9O591G.Z<W<s? 3k9{2U<(77BJ>29I3V;k2^7*9F9p8M5j1~=;8z552@@G@YBo7P=i69?p:xF2Au=/7??Q6I:n=3=V<99M5f@x<_8o6#D#D=FL;7AI:$CS>fIuEc@s;,C9:4>W@zA@@ =79PDa@G<W9g8;8U:e/P5e.=7r2}>69w51/<7Q.A2j5)5S401M-`8z4Z0r-|<'<:>Q369P2$;Z6fAy=a8s3';52.6N8s977z511N<^8H4U1g?c?~B-6v=(5b?3:GEWAD<V6j>z5r:;<[=%;b8{55@J<.8@5MCOCdEv:[@r9EB~>+IFE+@G:SBi9!>'@C@k?G<a8u",
		"D.?m<%907e7z:1.t5.-b792I=!9I4[.r7 -{2>4c5%3g0x-78E4/0<-O;L;h=s2`8o1I:w6+A<=&8<2M:c1Y6&8E8p7M4j0}<87v4.17?<?MAb6C<!5,>d9lE'@i<&66>L5E9m<4<[;=8T4k?};a7p4|B{C3EB:*@<8sBG=ZHjDZ?k:&B593=W?~@E?+<@8!Cl?S;_8o7>7V9b.K4!-46g1t=-8q4,.:6Q-D1p404]3;0Z,o8-3k0&-/;4;D=Y298P0}:U5^@t<[7q2':9145X7~8F7,4B0`;r7[3j0z>w?2A<6%<14g>69GDV@D;V5m> 4|9G;l<7:w834L?`;F7W4eBdBzE+9m@#8SB*=3HKD/?J9WAp8d=3?R?~>!;y81CI?);?8I6~739G.+4B,r6I1U<h8R3d-x6*-'1I3q472|03,Q7a3L/X,k:f;#=-1u8%0!:+5;@I<47F1X9k0c5/7Q7}6^3|06",
		";O723G0Q>T>e@w5X;m4==s8zD5?v;35A=X4N8x;<;e:G7a3x?1:q7'42B3BFDV9;?M8$AT<eGvCe>w92A@8?<a?+?M>4;G7dBs>!:i7{6I6b8m-W3f,>5n0|<27x32-B5X,M0y3:3e2C/`+t702m/',0:5:E<Z1:7Q/~9W4^?u;[6s1(9<074^7'7N633I/d:u6Z2h/u=q>)@44x;)3^=.8@CO??:Q4j<|3|8G:p;:9}783R>c:H6T3`AZAnCy8^>n7B@u<$G;C >>8M@h7^</>O>}=]:{73BK>*:?7E5w6'89,u3-+[520>;S7=2S,i4{+z0B2k331y/3+Q6c2L.Y+i9c9y< 0f6o/E8n3~?/:y600F8[/W4%6K6w5!2y/6:M622E/P=O=`?m4M:]3*<!7bBx>!9x4*<F3?7n:4:b9D6a2x>29q6(31A2ABCR83>D6s@F;RFbBN=a7z@.7/;U>$>I=3:I6h",
		"Aw=a9l6}5J5b7j,S2_+64b/p; 6h1},14G+?/l212`1B.b*y671v./+89;9J;!0:6P.z8R3X>n:Q5j/y82/,3V5|6J512M.h9~5d1t/#<}=2?=3}:-2_</7?BN>=9N3h;y2z7C9n:88~692W=i9Q5^2m@g@|C(7j=w6K?{;*F@B(=C7S?m6c;4=U>&<b:$69AS=39I6P5'557H,&2;*g4?/G:]6F1^+r4*+(/O1x2A1(.?*!5m1U-c*r8m9&;./q5|.R7{3/>;:*5</T7h.h365_6-4p2/.I9^5B1R.]<Y<k>v3W9g27;h6oB)=k9*3:;W2P7%9H9y8[5z22=J9)5<2A@A@MB!7:=M5z?O:[EnA[<p7,??6A:h=8=_<J9a6#A3<y9&654!4q6v+!1f*<3g.w:)5r1*+?3U*P.}1E1t0X-x*45N11-E*N8N8!:i/F5W.#7U2Z=q9U4q/$7>.92g505^4C1a-{",
		"964v1+.4<1<@>J3)961c;26?AM=<8O2j:~2%6N8|9G825J1i<y8b4m1|?s@+B06r<{5O>{:*E<A$<=6P>k5e:8<!=0;o935H@b<A8V5!404<6L+(1<)e3<.B9X5=0V*i3#)}.K0u1C0,-G)d4x0_,m)y7s8(:/.n4w-K6s2%=18|40.I6!-]2*4W5%3m1,-K8`4H0V-b;[;m=t2T8_1.:!5d@x<^7z2-:J1C5u8<8n7P4q1*<E8%491>???IAW62<D4m>B9KD_@I;a5y>1539!<,<S;>8U4t@(;n7y5+3S3h5m*R0Z)02X-g8t4a/u*02F)E-q0=0j/P,n)+4B0&,7)A7?7N9Z.84G,q6D1I<_8C3`-p60-+1^4(4Y3>0^,v803n0 -';$;0=;1t8%0Q: 5-@><,7A1!9r0x5E7v8C714J0j;z7b3j0w>k>~A#5c;k4?=i8xD,?u;05F=a4^92;Y<.:p854M",
		"?g;G7Z4`B^BhDt9N?_8)A!<bGyC_>{92AM8K<y?F?u>^;|8<CS?9;I8SFNF!Hb=@CH;tE>@KKWGFBY<uE,<2@]C0C!BJ?f<*G>C(?4<BJ9JKLOA/G6?aI.D5OGK.FI@!H{?xDPFwGNF2CU?kK)FfBz?~N N+P9DoK#CJL{H#S7N|J7DNLfCiH9JhK6J#G>C]NoJWFcCpB:BMDR95?<7mA7<EGPC=>O8g@|7~<M>z?K>6;U7sC,>p; 8-F(F7H?<zC*;SE%@*K?G B><NDk;e@<BbC9A|?B;[FvBW>j;nIlIuL#@YFg?2HaCjN|JhE~@<HR?XD%FVG EnC*?KJ!FEBO?!MQMcOdDFJLB|LGGVReNSIjD%L?C>GnJ9JjIOFnC*NBJ$F5C<AjAuD#8[>j74@e;jG$Bg>(8;@X7V<+>T?(=l;.7HB_>A:Q7XESE_Gg<BBK:vDA?LJYFGA[;xD1;9?fB<BhAX>r;6",
		"FGB0>8;DI8IHKI@)F.>ZH&C/N@J)ED?YGy>xCQE{FTE:B^>uJ2EmB ?$L}M'O1CdIsB;KmFqR+MoI.CDK`BcG6IeJ8I%FCBbMwI!EiBrA;AICK8)>.6[@#;0F<B*==7Y?o6t;D=u>F=4:S6tB.=s:$70E'E6G9;rAx:CCm>qJ'EiA(;;C[:X?2AZB4@x>@:YEvAV=j:mHkHrJ{?QE]>$GPBUMgIPDh?%G?>FBuEKEyDiB'>II[EDAN>ZLOL_N`C@ICArK:FGQSM@HTBnK*B-F^I/IaHKElB+MCI'E6B>@i@uB}7W=c6-?!:`EuAX<u7*?H6E:z=G=|<d:+6FAa=C9V6[DVD_Ff;?AH9pC<>DIRE>@R:nC':/>[A2A_@Q=n:5EHA3==:JH=HMJL?+E.=ZG#B.M=I(DA>YFv=wBNDxEPD7A[=tI2DpA%>)L%L-N6BjHwA>JoEsQ-LpH2BGJfAgF=HjI=H(EGAc",
		"LyH]DlAt@@@LBQ7.=55`?):5EAA0<D6a>x6#:P=%=S<B9^6#A6<{9)65D*D:F<:w@|9JBr=yI.Dr@1:FBg9f>B@lAG@/=T9lE*@e<v9vGrGvJ >SD`=&FUAZLoHXCt>1FN=UB+D^E2D A@=aHsDY@b=jK!KiMgBDHG@tJ=EKPXLHG^A|J8A?EpHDHvGdE'AFL]HBDOAV?|@)B,6a<i52>]9bDw@];|64>V5U:0<Z=5;{9C5^@{<!8o5rCmCrEw:J@R8tB@=DHTD>?V9sB09;=k@E@t?h=(9MD`@K<T9aGRGaI^>:D9<cF(A1L<H(C@=[Ey= AYD+DaCL@p=/HHD)@9==K7K>MDAwH$@FIsDuP-KnG/ADId@gEAGpHIG5DX@uL1GpD#A(?P?YA^66<<4d>-95D@@,;?5!=r4{9L<%<U;H8g5/@C<.885DC7CEEC9}@ 8KAp<wH(Cm?)9?A^8^=9?e@B?+<S8n",
		"D.?k;~9 FzF}I'=VC`<$ER@TKiGPBm=(EF<LA#CUD*Bv@9<YGoCU?a<iJ^JiLhABGE?oI6DBONK>FS@rI-@6DfG<GlF[Cy@=KQG8CC@M>r? A#5Z;`4*=S8XCk?Q:p5(=K4K9';S<.:s8<4V?r;Q7c4dB_BcDi9;?D7fA3<6GGC0>J8fA&81<d?>?p>d<%8HC[?C;K8TFDFPHL='C&;PDs?~K,FxB2<PDn;v@PC%C!BJ?n</GFC(?5<8J-J3L5@fFn?4H`CcNyJ_F#@9H!?_D<FkGGF3CZ?vK4FsC&@(>P>T@W5+;03S<z8#C1>z:44R<l3x8K;&;W:L7k44?I;47>4JB;BHDC8z>x7C@d;lFxBb=|88@Y7_<<>l?I>5;]7yC8>v;*8,F%F(H,<ZBb;$DO?OJcFIAh<#DF;M@)B]C7B'?K;jG$Be>r;wIlIsKs@JFL>tH:CDNOJ=ER?qH.?:ClFFFxElC/?R",
		"JgFOBX?b>'>3@04h:j34<Z7`Bp>W9s4,<O3P8.:!;;:&7O3k?,:j6}3}AwAyC}8L>T6r@@;@FRB9=T7o@079;n>H>}=q;67ZBp>Y:c7lE]EgGb<:B8:_D#?-J8F'A=;]Cy;'?!B3BhAY>{;>FUB:>G;MIAIIKH?{F >EGnBqN(IlE/?FGk>nCLE{FXECBj?'JCF#B4?5=^=b?f48:>2_<*7-B<>&9>3!;x3'7Z:6:h9]6|3D>W:A6I3SACAPCJ8$> 6J?k:sE~Ai=$7@?a6i;F=z>W=F:m7-BG>':575E*E-G.;[Aa:#CN>OIdEJ@j;%CJ:Q?0AdBBA2>X:wF3Ar> ; HsHvJt?GEI=mG4B=MJI9DO>pG->;BmEJE}DsB6>!IqEZAc>l=.=8?23g9d2-;P6VAd=N8j3&;J2N7.9]:<9)6S2p>19o6%3%@{@{B}7J=N5i?5:2EEA*<H6b?(62:l=F=~<r:96!",
		"At=Z9f6lD^DfFa;6A39WBv=}I)Du@-:NBk9z>SA/Af@Z=|:BEWA==G:MH>HGJC>vDw==FcAfLwH]C|>6F!=`BADqERD?Ai>(IEE$A6>4<]<^>a30961U:}5}A0<u802M:j1u6M9*9_8V5x2B=W9A5K2T@C@MBF6{<v5@>`9hDr@_;u66>U5_:;<p=M<?9e6)AB=&9366D)D,F*:W@Y8xBD=EHZD@?b9zBD9J>+@]A=@+=S9pE.@l<{9{GqGrIr>BDE<fF.A4LBH0CI=kF*=:AnDKD~CtA6=!HoDX@_=i<*<5>-2c8_1):I5Q@]<I7e2$:H1P618d9C825Z1w=68s5%2%?w?wAw6D<H4c>/9-DA@&;F5`>*559r<N=-;~9H5jA&<f8q5sCcCfEa:2@/8RAr<zH'Ct?.9QAp9$=[@;@s?j=09VDk@R<Y9_GKGQII=zCv<<E`@dKuG^B~=;Eb<iALD DbCP@}==",
		"H!D<@M=K;r;p=p2;8>0Y: 4}@1;u751R9s1#5!8:8r7j511X<p8Z4e1l?!?cA[6/<(4K=g8mCt?b:x5<=[4j9H<%<`;U8|5B@Z<@8K5OC@CDE>9l?k8+AP<OGaCF>g9 AK8S=7?l@O??<k9,DI@(<896G,G+I+=UCX;uE=@?KLG7BO<oE/<?@uCTD.C'@I<qH(Co?w= ;@;I=@1t7n079U4]?f;R6j1*9K0U547i8I7;4e1)<F8)4819?-?-A*5S;T3n=885CH?,:M4e=/478v;P<1;$8M4o@.;n7}4}BpBqDl9:?87W@w;|G*Bv>18T@r8'<]?=?s>j</8UCi?R;Y8`FMFTHK<}Bw;>D^?dJrF!A{<:Da;j@MC#CbBP?{<:GWC6?F<D:j:i<i1477/Q8x3u?*:m6.0J8o/|4[787s6i410V;m7R3!0`>O>S@K4z:u3:<X7^Bf>U9k41<Q3c8A; ;]:U7z4B",
		"?X;=7C4FB1B4D*8X>T6s@9;;FMB5=W7r@?7I<0>f?L>=;k8,CI?(;681F$E{Gx<ABB:!D%?%J6E}A=;]D ;3?mBMC)B#?G;pG)Bo>w;}:<:A<50e6!.~8=3D>M:;5T/v8;/J4+6e7F6;3e0+;G7,390;>,>,@$4L:I2a<'7 B3=t993S;~3,7p:L;2:&7S3t?5:t7&4$AtArCm87>46O?o:oEzAf= 7E?f6z;W>;>t=p;77`Bt>]:c7jEUE!GP<$Ax:>C!>aIkEV@r;2CX:d?HB#BdAW?';HFfBG>V;U9x9v;s0=6>.V7|2w>,9l5./H7n.y3[686w5n3</a:}6c2p/s=c=e?]4+:%2D;b6fAn=!8r38;W2j7F:):c9]7&3N>e:M6U3ZAFAJC>7l=d6'?G:IEXAA<b6~?K6U;<=r>W=H:u76BU>4:D7@E5E0G.;TAT9mC6>4IFE.@M:lC3:C? A_B<A4>X:~",
		"F8A|>';,9I9N;D/t5l.17M2T=!9K4c/)7L.]3=5z6Z5Q2y/@:Y6=2F/H=5=5?,3U9P1k;06.A?=$8G2b;12=7&9_:G9;6j3->J:)6732A#@yBt7;=85R>t9tE$@m<,6P>s6+:g=K>)=&:K6tB,=q9v6zDcDfFV;'@y9>BZ=`HjDY?u:9B`9o>SA0Ar@g>6:XEuAX=e:d9'9$:y/B5>-T6w1q=%8f4+.F6p-}2c5A6&4y2I.m:-5n1|.|<m<k>c3-9&1@:!5!@d<Q7h20:R1h6H9.9j8g602Y=n9W5!2a@I@MB>6k<`4~>=9?DJ@4;S5q>?5M:6<o=X<L9{6=A!=;9I6DD6D/F*:N@M8cB+='H8Cz?=9ZB$93=s@TA6@0=Y:#E=A#=,:.8K8L:A.l4c-%6@1E<L8:3Q-u69-L2,4l5M4H1q.=9V5>1F.I<3<3>%2N8D0_9}4{@-;p751Q9}1,5s8O998-5^2 ",
		"=C9#532.?}?uAo63<04E=g8dCr?!:z5@=f4{9[<@<{;w9@5iA <g8m5rC[C^EO9|?p83AM<SG[CK>e9-AS8f=J@*@k?b=09SDm@Q<[9[7z7x9o.943,J5l0f;v7Z2}-;5h,u1_4>5&3z1L-n9/4m0{-w;h;b=Z2 7y059S4R?!;G6a1)9M0d5F8/8l7l561a<v8^4b1e?K?LA:5e;X3w=589CD?1:O4q=>4O98;u<^;U9)5K@i<J8W5RCAC9E09R?M7bA)<$G6By>>8!A)89<}?^@C?<<i92DO@4<@9@7^7[9P-w3l,*5E0G;N7=2U,|5A,Y193}4^3!1'-R8j4T0[-_;H;I=81a7T/m9+4(?4:x6<0Z9+0:5'7c8O7E4w1<<!8<4K1E?7?.A'5H;C3V<w7qC#>f:(4J<r4*8l;R<5;28[5'@><%8,5.BtBtDf93?'7E@_;cFjBY=q89@^7r<V?:?|>w<F8m",
		"D*?m;v8wFbF`HS<zBq;,DJ?EJTF8AZ;tDD;Q@;BvCaBX@-<PGqCS?b<]JNJFL=@_FX>mH/C,N7I~E<?`H(??C}FeGFFFCm@;KQG:C?@CN)N*OtDAJ2BPKhFmQvMdI$CIKrC(GnJOK6J.G!D O>J|G+D'QqQkSaH&M}F5OVJPUbQGLkG,OYFiKRN2NwMoK?GbR~N`JlGhF)F$Gw<>B6:OCj>jIsEa@z;ECi;%?dBNC/B0?X<&G;C$?(<*IlIkKW@ Ep>.GGBFMQI;D[>|GM>_CMF/FyErCH?kK.FiBv?nM[MOODCbI[AlK0F*Q:L~HDBeK4BIG1IuJ[IYG)CQNlJQFYCWQ@Q;S*GOMAE[NsIvT~PnL+FSNyF5JvM^NCMBJmG:RTN<JDGFE^E[GJ;oA`9vC3>-I9D|@A:_C1:A?/AlBZAR?);MFoBQ>a;[ILIBK9?WEO=_F|AtM HgD'>JFs>/BrE!FAECBm?<",
		"JSF<BA?CM)M(NrC>I-AIJ^EaPgLUGoB8JaAxFaIGJ1I-F!C&NBJ&F/C,PtPnRaG'L{E3NRIKT[P?KbE~NOE^JJM+MtLmJBFgR*MiIwFrE4E,F~;CA;9QBm=kHtD`?z:CBg:#>bALB/A1>[;+FCB.>3;6HxHwJb?,Dw=5FLAMLUHAC`>&FR=fBRE5E~DxBM>qJ4ErB >zLgL]NQBoHg@xJ;E3PEL+GOApJBAVF@I%IiHeF5B[MvIZEcB`PKPER7F[LNDgN#I%T-OzK8EbN,EGJ,LsMVLVJ#FMQcMKIOFPDfDdFQ:x@h9$B<=9HDD,?N9nBA9S>CA%Aq@j>B:dF(Ad=r:iHWHKJ@>!DT<dF&@|L-GqC4=WF&=?B)DqEYD[B+>VInETAX>VL:L4M{BBH0@JI`DcOkK[FwACImA*EpHZIDHDErB?MZI?EEBBP)O~QkF/K}D4MPHJSYO?JdE&MWDhIWL:M(L IVE{",
		"Q@M I0F*DHD<F/:L@A8RAl<fGpCZ>w9@Ai9'=j@WA<@@=k:<EUA?=D:FH*H'Im>4C|<7EI@HKMG9BV<|EL<dARD:E(D&AY>#IBE$A/>*KqKgMXAuGi?xI8D.O=J~FE@dI8@LE;G~HkGhE=AdM%HdDoAiOTOJQ;E[KNCcL|GzS$NnJ,DTLzD9H{KhLNKRH~EOPgLQHUEWCkChER9w?d7{A4<0G8B~>@8`A28E=4?t@d?`=99^E$@c<r9kGYGLI?=YCN;!Dy?oJ}FbB'<HDv<0@yCbDLCL@{=HHcDI@P=NK5K.LwA<G*?AHVCWN^JNEj@7H`?}DeGQH8G9DfA3LLH3D8A7NyNtP`E&JsC,LEG?RLN3IWCwLLC^HOK2L JyHPDsP7KtH$DyC:C-D~9=?47D@a;YFeBN=m85@`7|<e?R@:??<k9;DS@;<>9=F}FwH_=%Bm;(D;?<JBF1AM;vDE;a@OC;D)C*@]=)",
		"HFD*@1=+JnJbLN@kF!>lH+C N3IvE??`H7?KD=G#GqFnDF@lL/GmCy@pNZNMP<DXJJB[KtFpQzMhI)CSK}C>H&JqKXJ^H-D!OtK_GcDeBxBtD[8~>g6}@2;.F4A|=>7c@57N<??'?t>s<K8sD7?w<'8}FhF!HL<eBX:dD >rJ#EcA*;KC};8@)BqC`Ba@6<_G|C`?h<cJJJ?L,@KF9>MGbB`MfIUDp?>Gg?)CpF`GJFPC~@OKhGPCS@RN5N.OtD9J&B;KQFLQVM>H_C#KTBhGZJ?K1J.GeD.OQK2G@D7BTBED78P>E6R?n:dEqAW<x7>?k7(;p>!?G>K;{8LCh?P;V8UF8F0Gu<8B :7CH>GILE<@W;%CP:m?ZBGC3B6?h<6GRC8??<<I~ItK^?{Ei=yG4B+M9H}DF>hG@>UCHF.F|ExCP?tK8FuC$?wMbMTOEC_IRAaJ{EtQ LjH,BVK%BDG.IzJbIhG7Ce",
		"N|JeFgCgAxAsCZ7|=e5{?/:,E1@z<:6a?36N;@>+>y=z;S7{C>>};)7~EfEWGD;]AN9ZBt=iHwD[@#:DBx:3?'AoBaAc?;;dG&Bd>m;cIII:K%??E-==FSAOLWHFCc>3F^> BjE!FFENB}?PJiFRBU?SM3M+NlC/HuA+J>E:PBL,GMArJGA_FRI9J,I*FbC,NPJ1F?C7ARABC27H=:5D>^9QD^@B;e6,>]5x:h=U>D=H:{7JBh>N:U7QE5E+Fp;0@u9*B:=7H:D(?C9oB>9`>NA@B.A5>g;8FSB:>>;;HzHpJW>uD_<pF(@|L*GnC5=XF/=FB<E$EvDtBP>vJ<ExB'>yLdLSNBBZHL@XIsDjOvK^F~AIIvA7F#HqI!HcF6BfN#IiEmBl@}@uBZ6z<a4u>(9&D)?t;35!>,5I:9=&=t<x:P6|B?>$:-7(DjD]FG:`@M8YAq<fGsCX>~9CAy94>)@pAd@d>>:e",
		"F)Ag=q:gHOH?J+>CD1<>EU@OKXGFBe=5Ec=(AqDdEODWB'>WInEWAX>WL6L.MoB3Gw@/I@D=OCK/FO@wIL@hE!HGI:H;EqB<M]I>EIB?@W@GB56L<=4G=a8TCb?F:k52=f5$9u<d=V<[:36_A}=`9g6^DBD2Ev:2?x8+A<<8G=C,>I8wAG8k=[@PA?@J=|:PEjAS=U:QH.H#Ib=~Cd;tE)@ K,FsB;<`E9<SAJD4E+D+Ae>0ITE4AA>5K{KgMSAgGV?_HwCkNxJ_F&@MI @AE1H#HnGvEKAzM:I E(B%@7@-An6-;o4 =/8*C+>u:34_=04R9C<5='<.9c65AS=;9B6=C~CqEX9q?[7f@y;lFuBY=}8C@z86=/?x@p?r=O9wE<@y='9xG`GMI9=OC=;GD^?TJ!FFAe<3Da<&@rCfDTC_A2=dH~Dg@i=fKDK;L{A=G ?6HECANEJ0EN?uHH?dDWGEH8G<DtAB",
		"LdHHDRAJ?`?PA;5Q;?3H<`7SB`>D9i4.<b3{8p;]<Q;T9/5Z@|<_8i5`CEC3Dx92>x7'@9;2F8B&=D7r@C7g<U?K@8?C<t9HDb@K<M9JG(F{H!<xB]:mC}>wJ EjA1;YD2;M@EC0D&C&@^=(HJD)@4=(JlJYLE@ZFI>QGkB^MlIRDx?BGv?8D,FzGkFrDH@uL4GvC{@t?(>w@!4v:!2l;z6uAx=f9%3S<%3J8;;1<#;.8b56@R<98;56BqBcDE8]>C6P?b:WEaAH<n76?o7-<(>s?m>p<O8xD??z<'8vF[FDH-<>B*:1CH>=IIE3@W;%CX:{?nBdCTB`@6<hH&Cl?n<jJGJ;Kx@5Et>'G4B/M2H}D>>jG?>`CUFGG;FBCy@JKkGQCY@S>f>W@=4R:;2C;W6HAS=68!3#;[2w7q:`;Y:^8<4g@-;l7w4kBQB=D%88=~6)?::/E4@}<>6l??6f;X>Q?B>Q<'8[",
		"Cu?_;`8!F8F-Gi<'Af9vC&=}I$Dl@0:YC1:O?GB7C/B4?o<=G_CA?K<@J%InKX?kEX=_FvAhLuHZD >GF}>=C3F$FvE}CX@)KJG/C7@/>B>2?t4-9o1{;,6%A'<r812^;/2T7E:<;-::7n4E?a;L7O4LB*A{C[7t=W5c>r9hDo@W;{6D>}6<;7>%>{=~;]8(CL?+;78)EmEWG@;QA=9CBZ=LHXD@?e:2Bh:-? AtBeAo?F;uG3Bw>y;sIRIDK&??E#=3F?A;L=H+CH=wFJ=nBbEWFKETC-?!JyF_Bc?!=k=!?@3V9>1H:Z5M@X<=7c2*:d2#6|9l:g9l7M3w?=:z7&3sAWA>C%74<z5#>69+D3?{;@5n>D5k:_=Y>L=[;27gC$>k:k7eE>E/Fh;#@^8lAx<sGwCe?)9VB.9Q>IA;B3A:>u;EFgBJ>R;GI)HrJV>gDO<TEh@YKfGKBs=<Ev=8B2E$EyE#B]?-",
		"JOF3B<?1=D=0>r3&8h0o9{4p?r;^6{1N9~1J6=99:,9<6p3H>d:N6P3LA(@wBU6m<L4X=b8XC[?D:f51=j5-:*<z=v<|:]7+BO>/:87*DkDSF::I@386AK<;GGC,>R8zAU8w=o@eA!@h>C:sF5Ax=|:sHQH@I~>6Cv<%E1@+K,FwB6<dE7<]APDHE<DJB$>WIvE_Ac>^<l<!><2R850?9N4A?I;/6T0z9V0s5p8_9!8a6C2n>89u6$2r@W@>B$61;v3y=.7}C)>o:64c=<4c9Y<R=F<U:-6`A|=e9f6aD<D-Eg9~?]7j@s;nFpB_> 8RA*8O=G@=A4@>=v:GEfAJ=O:FH&GpIS=fCM;SDf?WJcFHAq<:Dv<9A6D)E$D+Ah>6IYE:AB>4<G<0=q2$7g/l8{3o>t:^5~0P9&0O5E8B988J6#2Y=u9_5_2Z@2@ AZ5p;M3Y<b7ZB]>H9j49<q4895<*='<09o6?",
		"Ac=E9M6>C|CcEF9S?:7<@P;?FLB2=[8&@a8'= ?u@o?z=X:+EMA2=8:-GjGUI6=GC);1D<?2J3E~A>;oDC;m@aC]DQCaA;=pI0Dx@{=w<&;t=Q1g7F/O8Z3M>Q:85!0'8a0$5#7s8r7y5!2+=Q915<2,?m?SA85D;+3,<>7,B5=x9@3k<F3l8f;a<Y;i9E5xA9<}9 5wCRC@Dy91>l6w@#:yEzAi=*7Z@07W<O?H@??M=)9[Dz@`<d9[G7G$Ha<sBW:]Cm>_IiEO@v;@C{;=@;C,D*C1@p=?HeDF@Q=B;U;<<}1,6n.p8 2p=v9_5$/R8)/R4H7D8:7K5%1[<x8c4d1_?8?'@^4r:M2W;_6VAW=D8e37;o3884;+<&;08l5=@^<@8F59BvB^D?8M>264?F:5EAA&<Q6y?Z6};|>r?n>x<W9'DI@*<09 F_FGH(<8Ax9}C-=~I$Dm@/:`C7:b?YBWCMB_@8<n",
		"H-Cs?s<l:t:c<>0R6/.97B27=;9$4G.r7P.s3s6i7j6t4Y1)<N8.461%>b>E@&4/9q1p;$5o@z<`8+2W;62]7[:V;R:b8B4u@8;{8 4sBMB6Cn7}=Y5`>h9_Da@Q;p6G>{6J;B>??7>H<%8ZCx?a;c8!F6F#G[;lAJ9OBZ=LHSD:?a:-Bl:1?2B'C'B0?r<AGhCI?U<E:X:=;}0)5j-h6v1b<h8N3q.A6y.G3B6A7;6N4+0b<$7k3m0f>?>,?c3u9P1X:]5R@Q<=7!2/:f227/:+;(:87u4J?l;P7U4IB%AkCI7X=95<>K9:DD@(;Q5y>Z5|:}=s>t> ;c84CZ?;;D84ErEWG9;EA(9+B8=*H.Cu?89gB=9h>_A]BTAh?C;{G<C(?)<$:-9y;R/e5@-I6P1F<G823T.#6].$3#5w6v6$3e07;!7?3G08=u=Z?:3C9&1%:55 @-;p7=1g:H1o6o9h:e9s7S4'",
		"?H;+704#A!ADB~7/<k4p=y8oCq?`;$5X>05^:V=V>M=_;97nC->r:q7iEAE.Fd:w@T8[Ae<YG_CH>o9=A{9C>FA<B>AH?,;XF~B]>e;S9c9E;&/-4m,k5z0f;o7U2{-K6)-T2R5Q6N5b3A/x;:6~3 /t=K=4>h2v8O0U9Z4P?O;>6^149l1<6999:69H7)3]>~:d6f3ZA2@vBO6[<748=C82C;>~:L4v=Z5 :&<{=~=,:o7@Bg>H:Q7@D}D_F?:F@'8$A0;zF~Bf>+8!A68c=^@_AY@n>K;'FEB1>2;,948~:U.f4>,D5F0:;87#2B,q5M,w1w4t5u5(2i/>:b6F2L/=<v<[>82A7}/z9*3r>{:^6*0S960]5a8!9_8n6S3(>L:/653%@_@CA|6);e3f<o7aBc>P9o4E<z4K9D<F=?<U:26jB+=s9r6kDAD-Ea9r?L7R@Y;MFPB9=]8,@i81=3@+A-@9=|:N",
		"EvAX=b:R8a8D:#.)3g+b4p/Z:c6G1n,=4z,E1E4C5B4T25.k:05t1x.m<G</=e1q7J/M8R3F>E:35S0+8b0451829-8A5|2T=s9Z5Z2P@(?nAF5T;032<<7,B3=x9D3p<U3{9$;y<}<,9n6>Ae=C9K68CuCVE69=>}6z@*:tEzAa=)7X@67c<a?b@_?u=S:.ELA5=5:,827y9O-^36+<4@/5:45~1A+s4O+|0|3|4}441t.L9o5S1V.G;|;`=81@6y.w8%2o=y9^5-/X8>/e4l7h8m7}5d28=_9A5H25?o?OA*5/:i2g;p6`Ad=Q8t3K<'3W8T;W<Q;i9F6 A@=+9+6#CUC@Dq9#>V6[?^:RERA><b75?r7@<C??@B?Q=79hE1@q<y9i7v7Y95-;2v*o3z.c9j5M0u+D4'+Q0W3V4Z3m1R.*9N5317.);`;D<y1%6!.[7_2P=O9;4[/27j/?4=7B8?7W571o",
		"=18w4u1k???'@Y4f:>2@;G67A;=#8K2w;[3&8,;&<-;;9#5S@{<!8d5QC/BlDJ8N>.6(?59|E&@h<06^?<6h;h>h?g>}<^99D[@E<G9=7E7,8_,k2A*C3F.9975$0C*w3R+$0#3$4$390x-R8s4Z0!-P;':i<?0H5~-|7'1p<w8]4+.X7?.g3o6j7q7 4g1:<`8@4H14>n>M@)4-9h1c:m5Z@_<I7n2D; 2S7Q:V;R:j8H5#@@<)8'4zBNB7Cg7v=K5P>S9GDF@3;U6+>g68;<>;??>Q<78iD1?q;u8d6m6N8',+1d)]2h-Q8X4</f*42w*D/L2L3S2g0P-'8N4106-$:Z:9;m/q5J-E6K1:<:8'3I. 6!.23168776Q410l<.7v3t0j><>#?P3[9.1/:25#@%;l761g:L1w7 9|;&:67|4P?x;Z7b4PB-AiCD7F=#4w>$8iCo?S:z5K>.5[:_=a>d=z;_89",
		"C]?D;H8<6D6*7]+f1<);2<-,8(3r/3)h2D)v.w1}2~2;/{,W7x3a/`,U:(9k;>/H4{,y5}0j;n7T2~-N64-^2i5g6p6%3m0A;j7J3R0==u=R?-3/8i0b9m4X?^;E6k1?9|1N6O9T:S9l7M4*?K;5754*A[ABBr6~<R4U=V8JCI?7:X5/=j5<:>=@>B=W;=7sC:>};$7s5{5]73+80m(f1n,W7^3B.m)<2$)N.W1V2^1q/Z,07X3:/A,/9g9E:{.}4V,O5U0A;C7/2S-,5h-@2A5I6H5b3A/|;<7&3#/u=F=.>[2f890;9<4.?.:w6@0s9X1*6293::9L743f?.:l6q3]A7@rBK6N<*3~=+7pBw>[:'4T=:4g9p<r=y=3:w7PBu>Z:]7L5T546f*k0A(>1@,07.2x.;(q1N)&.'11231P/3+p732z.w+j9:8{:I.P3~+|4}/k:n6W2$,T5<,h1t4t6 553 /U",
		"; 6`2g/R=,<d><297p/e8n3V>!:C5k0@9#0T5Y8^9a8z6^3:>]:F6G3;@m@QB#6+;Z3Y<W7HBD>19R4+<f4=9@<G=J<c:H7$BG>/:17$5)4i6<*A/r'k0n+V6Y2<-e(40z(H-U0V1b0w.d+:6d2F.N+98p8L:$.$3Z+P4V/>:@6'1K, 4_,6194B5D4a2C/#:B6-2*.|<L<1=]1g78/8883)>'9q57/k8L/|5&8)908E6.2c>-9n5r2a@9?uAK5M;&2z<%6iAo=R8|3K<23!8f;f<o<'9n6FAo=S9Z6H4R405d)f/<'508+%6$1l-1'h0F'{,|0)1)0F.(*d6'1n-k*`807q9?-G2t*r3r.a9b5M0u+K43+b0n3p4z401x.M9u5U1Z.D;z;U=-1,6c.X7a2I=Q964a/57y/M4U7[8a7y5^28=[9?5@2/?`?A@p4v:J2G;H69A6=%8G3 ;_388<;G<K;g9K6)",
		"AJ=2906 4 3`5.)2.`&Z/!*G5J10,['-/u'E,U/X0g/}-l*D5o1O-V*?7t7L8~,y2O*B3H./934x0C*x3]+50=3G4L3j1O..9P5918.*;W;9<c0h66.27/1}<y8h4/.g7J/ 4+738:7T5<1u==9#5&1s?H?(@W4X:,2 ;%5g@k<N7x2H;22`7n:r< ;89&5[A)<i8p5]3f3B4u(t.J&?/A*)5(0m,2&g/H' ,'/409/Y->)}5@1+-()y7G7+8S,Z2'*%2~-m8j4U/z*Q37*i/u2{4*3B1/-e914q0v-a;7:o<C0A5u-i6p1V<]8A3l.=7%.S3^6c7l7(4o1J<q8V4Z1I>|>Z@,4.9^1X:X5F@D<17R2-:i2B7F:P;T:q8V57@X<D8C57372v4C(G-r%k.j)T4T0<+e&8/ &Q+`.c/q/),u)L4w0X,`)J7 6X8.,)1!)M2S-88=4 /L* 2g*>/H2Q3X2s0Y-6",
		"8X4>0=--:!:<;g/l5;-7641$;~7m32-l6N.)316<7C6_4E0~<D8*4(0t>F>%?Q3T9&0z9|4d?g;K6v1G:21`6p9t;':>8-4b@0;n7t4]2d2<3m'i->%1.4(y3z/b+*%`.C%{+%.3/9.[,A)#4E0/,+(z6F6&7L+O0v(q1l,[7X3F.k)G2-)c.p1y3(2B0.,f813r/u,a:59l;</74g,Y5]0B;H7,2Y-,5u-H2W5]6j6%3n0H;q7T3Z0F=y=T?'3%8T0I9H42?0:x6>0v9X156<9J:P9q7W49?Z;E7B45231r3;'?,g$_-Z(D3A/(*O%%-l%A*R-Z.k.'+u(O3z/!+a(K5~5U7(*~0R(B1F,)7.2n.;(m1V)-.;1E2Q1n/Y,77]3C/D,29`9=:h.h47,/5,/w:s6a2&,`5B,{2%536:5Z3B0 ;F7/3./|=L=+>T2V8$/x8v3_>_:E5n0A9,0Z5k8o:#9:7+3a",
		"?1:q6y3c1l1D2u&n,C$3-6'w2z._**$_-D${*(-5.=-^+E(&3H/2+0'~5L5,6S*U/}'w0q+_6[2I-n(K11(j-w1&211N/8+q792{.{+h998r:@.>3m+`4c/I:N631`,34~,Q1c4j5z553$/Y;&6d2i/Q='<!>.2*7Z/N8O38>8: 5G0#8c0@5I8Y9a9'6k3N>p:[6V3H1C1 2F&G+m#e,_'K2G.2)X$2,x$Q)a,l-}-<+-'g35.u*z'c564i68*//]'K0M+/641u-F'x0e(<-M0W1e1%.o+M6u2Z.]+I8x8Q9|-x3E+945.}9y5f1-+i4M,,154E5M4o2V/9:[6E2C/5<`<@=f1h72/(8 2g=d9I4q/F82/d4w7~948N6@2w>F:)602v0}0T2&%{+N#<,>&|1~-a),#_,G#~).,=-I,k*V'72[.C*B'04[475])]/'&|/u*b5!1J,m'J0/'j,u0(130T.?*|",
		"6D2,.**u8C7{9F-C2n*b3b.H9K500!+03z+M0_3e4w432$.[:*5h1o.W<-;_=11)6X.H7J20=18v4@.x7]/:4C7S8[7}5e2H=j9U5R2D0@/{1A%A*e !+S&?1:-&(K#(+n#J(Z+g,v,7*&&`2+-l)o&Y4*3_5+)$.O&=/>)}5$0e,6&i/Y'1,E/O0`/|-k*E5n1O-Q*:7i7?8j,d23*%3 -h8f4R/w*W3=*{0)3=4G3k1S.69W5@1;.+;R;0<S0S5x-o6h1Q<N863].56~.V3j6v8-7J5>1w=G9)5.1s/v/J0u$j*: &+'%e0h,K'w M+9 p(%+4,E+g)V&71_-F)F&23!344Y(S-x%k.d)N4I08+!&=/#&b+o/%02/V-A*%5J14-1)~7J7%8I,E1j)]2W-=8=4#/O*%2q*H/]2f3{391,-d944s0z-b;8:j<;015_-K6K1-<-7o3:-q6Y.73E6W7d7+4s1W",
	]


	/**
	 * 从一个或者两个word93字符串计算它代表的数值. 它可以容纳一个最大为8649进制的数
	 */
	static fromWord93(word93 : string) : number {
		if (word93.length < 1)
			return 0;
		else if (word93.length == 1) {
			let code = word93.charCodeAt(0);
			if (code == 33) //code = 92;
				return 58;
			else if (code == 32) //code = 34;
				return 0;
			return code - 34;
		} else if (word93.length == 2) {
			return dateUtil.fromWord93(word93.charAt(0)) * 93 + dateUtil.fromWord93(word93.charAt(1));
		} else {
			throw new Error("方法fromWord93参数位数错误");
		}
	}
}